Re: CPU profiling an MS unit test

2024-02-20 Thread Greg Harris via ozdotnet
I asked Chat GPT...

Far too late at night for me to read / understand the response

How do I run a CPU performance profiler over a [TestMethod] in my c# unit
test project.
ChatGPT
Running a CPU performance profiler over a [TestMethod] in your C# unit test
project involves several steps and can be accomplished using various tools.
The most straightforward way to profile a specific test method is to use
Visual Studio's built-in performance profiling tools, assuming you are
using Visual Studio. Here's how to do it:

Using Visual Studio Performance Profiler
Prepare Your Test Project:
Ensure that your unit test project is correctly set up and that the
[TestMethod] you wish to profile can be executed successfully.

Open Performance Profiler:

In Visual Studio, go to the Debug menu.
Select Performance Profiler This option might be found under Other
Windows or Profile in different versions of Visual Studio.
Choose the Profiling Method:

In the Performance Profiler, several profiling options are available, such
as CPU Usage, Memory Usage, etc. For CPU performance, ensure CPU Usage is
checked.
Click Start.
Run the Specific Test:

The profiler will start, and Visual Studio will switch to a profiling mode.
Now, navigate to the Test Explorer.
Find the [TestMethod] you want to profile.
Right-click on the test method and select Run. If your test project
contains multiple tests and you only want to profile a specific one, make
sure only that test is set to run.
Analyze the Results:

Once the test completes, the Performance Profiler will gather the CPU usage
data and present it to you.
You can analyze the report to see where most of the CPU time is spent. The
report will show you the call tree, hot paths, and other details that help
identify performance bottlenecks.
Tips for Effective Profiling:
Isolate the Test: If possible, isolate the test you are profiling to
minimize noise from other tests or operations.

Use Release Mode: Run your tests in Release mode rather than Debug mode to
get a more accurate representation of performance, as the compiler
optimizations are different.

Repeat Tests: To ensure consistency, consider running the profiler multiple
times and averaging the results, as performance can vary from run to run.

Alternative Tools:
If you're not using Visual Studio or if you're looking for more advanced
profiling options, there are several third-party tools available that can
profile .NET applications, such as:

JetBrains dotTrace: A performance profiler for .NET applications that can
integrate with unit testing frameworks to profile specific tests.
Redgate ANTS Performance Profiler: Another profiler that can attach to .NET
processes, including test runners, to gather performance data.
Visual Studio Code with Extensions: If you're using Visual Studio Code,
extensions like .NET Core Test Explorer can be used in conjunction with
external profiling tools.
When using third-party tools, the general approach involves running your
unit test suite with the profiler attached, similar to how you would
profile any .NET application. However, the specifics will vary based on the
tool, so consult the documentation for detailed instructions.

Remember, performance profiling can sometimes introduce its own overhead,
so interpret the results with an understanding of what might be profiling
artifacts versus genuine performance issues in your code.

Greg Harris




On Thu, Feb 15, 2024 at 2:10 PM Greg Keogh via ozdotnet <
ozdotnet@ozdotnet.com> wrote:

> It's not Friday, but I can't find any way of running the CPU performance
> profiler over a [TestMethod] in my unit test project.
>
> Web searches produce no useful results, some hint that I can right-click a
> test in the test explorer and pick Profile..., but I have no such menu.
>
> Is this possible or not? If so, what's the trick?
>
> P.S. I often use the profiler for commands or GUI apps, but in that case
> you set breakpoint #1 and start the profiler, then at breakpoint #2 you
> stop it and collect the results. That doesn't work for a unit test method
> (so far...).
>
> *Greg*
> --
> ozdotnet mailing list
> To manage your subscription, access archives: https://codify.mailman3.com/
-- 
ozdotnet mailing list 
To manage your subscription, access archives: https://codify.mailman3.com/ 

DataDude.com.au domain name available

2022-12-07 Thread Greg Harris
Some years ago, I purchased the domain name DataDude.com.au

I was thinking that I would pivot to being more of a data dude

I am never going to use it, I am open to suggestions.


Greg Harris
Harris Consulting Group Pty Ltd
g...@harrisconsultinggroup.com
www.HarrisConsultingGroup.com <http://harrisconsultinggroup.com/home.htm>
phone: (international) +61 407 942 982
phone: (within Australia) 0407 942 982
Sydney
Australia


Online source code management tools - GIT / Visual Studio / Bit Bucket / Other ???

2021-06-09 Thread Greg Harris
Hello Again Community,

I am disappointed with my
https://MyAccountName.visualstudio.com/_git/MySolutionName
 repository on
VisualStudio.com.

It is feeling clunky and just not working for me from within Visual Studio.

What tools are people using for secure private cloud source control with
what client tools?

I am feeling that Visual Studio is not the tool to use to manage my source
code, it may be okay as an editor / compiler, but it just does not
integrate well with the repository, are there better solutions, or am I
just failing to read the manual properly?

Thanks for your help on this :-)

Groggy Harris


Re: Problem with VisualStudio.com repository from VS

2021-06-09 Thread Greg Harris
Hi Greg,

I feel that Microsoft had such a good solution with Silverlight and we are
just starting to get back to where we were 14 years ago now.
My typical solution these days is to offer a mass market solution as a
simple ASP.net web app, but that is just simple tables CRUD stuff.
Anything where I need to be clever (use the UI), is the desktop app that
connects with the API or database directly.
This means that my users have two UI's to deal with (what a pain).

After the way we were burnt by MS over Silverlight, I am being very slow
about going down the Blazor path now.
Like you, I burnt so much time, money and effort on Silverlight, not going
to try that again until I see strong community support.
(I thought I saw strong community support for Silverlight, so don't
trust my views on this).


On Sat, Jun 5, 2021 at 6:39 PM Greg Keogh  wrote:

> I am having problems with my
>> https://MyAccountName.visualstudio.com/_git/MySolutionName repository on
>> VisualStudio.com, with Visual Studio, I can not add a second project to the
>> solution and get source control to work!
>>
>
> Maybe that's the "old" uri. My personal repo is at
> https://dev.azure.com/orthogonal/ and I recall some confusion last year
> about  which uri to use. I have an MSDN subscription, which might weaken
> comparisons. Which reminds me ... the damn subscription expires at the end
> of June and I have a $1500 two year renewal dangling over my head. I know
> it's a tax deduction, eventually, but I could buy 20g of pure gold for
> that, or fund a pretty good cocktail party.
>
> It's not Friday but ... Greg H, you and I were big fans of Silverlight
> back in the old days, and there's still nothing to replace it in a web
> browser app. Blazor is mercifully freeing us from the heavyweight complex
> pipeline of ASP.NET server-side hosted apps, and good riddance to them. I
> will never write a server-side web app again, from now on it's Blazor
> Webassembly apps for me. I still have to create WebAPI RESTful services
> to drive the Blazor apps, but at least they're mostly boilerplate. The
> alternative data driver is Azure Function Apps, which I prefer to use
> whenever possible.
>
> Blazor is a great step forward, but all rendering is still done via the
> horrifyingly dumb and confusing constraints of HTML and CSS. Last weekend I
> spent the whole afternoon trying to make a HTML "splitter" work and gave up
> in tears, for now. How easy was that in the Silverlight rendering engine?!
>
> I'm also depressed that the arrival of MAUI doesn't address the web
> browser (does it?)
>
> *Greg K*
>


Problem with VisualStudio.com repository from VS

2021-06-04 Thread Greg Harris
Hi Community,

I am having problems with my
https://MyAccountName.visualstudio.com/_git/MySolutionName repository on
VisualStudio.com, with Visual Studio, I can not add a second project to the
solution and get source control to work!

I am using the free version Visual Studio (Visual Studio Community) so that
may have some limitations.

I tried using GitHub Desktop, but that looks like it will only work with
GitHub???

Is my mistake using VisualStudio.com? Would I be better off with another
repository?

Thanks

Greg Harris


Re: SMS messages looking for a good gateway

2021-05-22 Thread Greg Harris
Click Send just worked - Happy - Thanks for your help on this :-)

private String SendSmsMessage_ClickSend( String aTargetPhoneNumber,
String aMsg )
{
  String lBaseUrl = "https://api-mapper.clicksend.com/http/v2;;
  String lApiKey  = "";
  String lUsername= "";
  String lTarget  = aTargetPhoneNumber.Trim().StartsWith("04")
? $"+614{aTargetPhoneNumber[2..]}" : aTargetPhoneNumber;
  String lMsg = aMsg.Replace( " ", "%20" );
  String lRequestStr  =
$"{lBaseUrl}/send.php?method=http={lUsername}={lApiKey}={lTarget}={lMsg}";

  //
https://api-mapper.clicksend.com/http/v2/send.php?method=http===,,=

  WebRequest  lRequest= WebRequest.Create( lRequestStr );
  WebResponse lResponse   = lRequest.GetResponse();
  String  lResult =
$"{((HttpWebResponse)lResponse).StatusDescription}";
  lResponse.Close();
  return lResult;
}


On Sun, May 23, 2021 at 9:06 AM Greg Keogh  wrote:

> We've been using MessageNet for 15 years, still using their SOAP service
> (nice of them to keep it going!) No dependencies at all -- *Greg K*
>


Re: SMS messages looking for a good gateway

2021-05-22 Thread Greg Harris
99% domestic Oz origin and destination, but 1% will need to go international


On Sat, May 22, 2021 at 11:58 PM Craig vN  wrote:

> Australia only or International?
>
> On Sat, May 22, 2021 at 11:36 PM Greg Harris 
> wrote:
>
>> Hi Community,
>>
>> I need to send SMS messages from my ASP.NET Core app.  Is there a good
>> gateway that anyone here recommends?
>>
>> I have looked at a few, I was expecting a simple REST interface, found
>> poor documentation and download libraries needed to support them.
>>
>> I would have thought this would have been a simple REST service that you
>> just use???
>>
>> Thanks in advance
>>
>> Greg Harris
>>
>>
>>


SMS messages looking for a good gateway

2021-05-22 Thread Greg Harris
Hi Community,

I need to send SMS messages from my ASP.NET Core app.  Is there a good
gateway that anyone here recommends?

I have looked at a few, I was expecting a simple REST interface, found poor
documentation and download libraries needed to support them.

I would have thought this would have been a simple REST service that you
just use???

Thanks in advance

Greg Harris


Re: [OT] Employer wants photo of passport

2020-08-20 Thread Greg Harris
Some years ago, the HR dept wanted a new hire to provide his passport to
prove he had the right visa to work here.
He was OK as a contractor, but when we offered him a perm role, they wanted
more.
That was easy, he just brought in the passport and went up to see them.
I would scan the passport title page and the Oz visa page, share on dropbox
or whatever and send a text message with the link.
OT OT
Interesting that it was only one of my new hires they asked that of, but he
was the clearly overseas one.

On Fri, Aug 21, 2020 at 12:28 PM Craig vN  wrote:

> My wife yesterday had our insurance company randomly call asking to change
> details. Told them there is no way she is giving them info to some random
> call with no heads up.
>
> On Fri, Aug 21, 2020 at 7:44 AM Tony Wright  wrote:
>
>> It's a tough one. I had an argument with a loan company who called me and
>> asked me to verify with them so they could access my account details. I
>> said no way, because they called me. They argued with me, patronised me,
>> and wore me down. I said the previous time they called me they let me call
>> them back through switch, but he said that's up to the discretion of the
>> rep. I was so pissed off. I still am. That reminds me to write a complaint.
>> Sorry, off topic on the OT.
>>
>> On Thu, 20 Aug 2020, 9:10 pm Tom P,  wrote:
>>
>>> Hi folks
>>>
>>> I’ve been verbally offered a contracting role by a recruiter and the
>>> employer has requested a photo of my passport via email. I do not feel
>>> comfortable sending this for a few reasons, email is not secure, who knows
>>> what they will do with the photo like forwarding it, etc.
>>>
>>> How do you all handle this as I’m sure you’ve been in similar situations?
>>>
>>> Cheers
>>> --
>>> Thanks
>>> Tom
>>>
>>


Re: [OT] C++ directions

2020-03-20 Thread Greg Harris
If I was going to use C++
I would not!

I would use C# and use C for the small parts that had to be fast.

I have not touched C for 25 years, not going to change

:-)

Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
Baulkham Hills
NSW 2153




On Sat, Mar 21, 2020 at 10:20 AM Grant Maw  wrote:

> I would need a very good reason to choose C++ to write a new project
> today, a reason like needing to be close to the metal or needing very
> fine-grained control over performance, memory usage, and other resources.
> So things like writing a new OS, device drivers, high end computer games
> and other graphics-intensive scenarios possibly. But for me that is never,
> all my work is LOB stuff.
>
> .Net core more than satisfies all my current (and foreseeable)
> requirements, and takes care of all the internal plumbing for me. I can't
> imagine a scenario where I would need something other than c# or f# for the
> sort of work I do.
>
>
> On Fri, 20 Mar 2020 at 15:28, Greg Keogh  wrote:
>
>> Folks, It's quiet in here because I suppose you're all in lockdown
>> guarding your mountains of bog-roll. I've got a TGIF contribution...
>>
>> A colleague was discussing how to write the most transportable C++ code
>> possible and sent links to C++ 17 features
>> <https://www.codeproject.com/Articles/5262072/Cplusplus-17-New-Features-and-Trick>
>> and C++ 20 upcoming. <https://en.wikipedia.org/wiki/C%2B%2B20> These
>> articles quite shocked and angered me. I wrote C++ for 10 years until about
>> 2003 (when .NET mercifully replaced it my LOB style work). I quite enjoyed
>> C++ at the time, but after looking at those articles I'm quite angry that
>> C++ has become one of the worst victims of feature-creep I have ever seen.
>> It's like the C++ steering committee are suffering from an inferiority
>> complex and have fought back by adding every feature of every other modern
>> language into it. It's an insane jumble of the old low-level C-like
>> language with bits of LINQ, C#, Rust and Haskell. The syntax of the std::
>> libraries is so cryptic it looks like a maths puzzle.
>>
>> Just what category of language has C++ become? What is it supposed to be
>> best at? Why would I pick C++ to write a LOB app? What does Bjarne think
>> about all this?
>>
>> There must be a huge number of developers globally using C++, but what
>> are they doing with it that requires such a bloated and complex language? I
>> haven't met a C++ developer in the last 15 years that can answer that
>> question.
>>
>> *Greg K*
>>
>


Re: High-performance string reading and parsing

2019-12-11 Thread Greg Harris
My gut tells me that if you take chunks it will be faster with simple for
loops.
If you have multiple cores, setup one process per core to parse the files.
Maybe chunk in files or in line numbers, but each chunk should be big (100K
plus lines) so there is low overhead for process swapping.
It is very fast to join the resulting lists into one big one.
Warning multi process work can be *very hard* to debug :-).
Greg Harris
Harris Consulting Group Pty Ltd
g...@harrisconsultinggroup.com
www.HarrisConsultingGroup.com <http://harrisconsultinggroup.com/home.htm>
Sydney
Australia


On Thu, Dec 12, 2019 at 9:23 AM mike smith  wrote:

>
>
> On Thu, Dec 12, 2019, 08:42 Greg Keogh  wrote:
>
>>
>> What if you do parallel, but on batches of
>>> /Environment.ProcessorCount lines per thread?
>>>
>>
>> I used a simple Parallel.ForEach and I think the default partitioning
>> algorithm does what you describe (I hope!) --* Greg*
>>
>
>
> Your description of "string parse over in a blink, threading overhead
> more" suggests that it isn't?
>
> Setup 20 (??) threads permanently and feed them with lines from file(s) on
> demand?
>
>
> Mike
>>
>>>


[Off Topic] Drop Box alternatives with a large number of files (about 0.5M+ files).

2019-05-23 Thread Greg Harris
Hi All,

Sorry, this is a bit of a long rambling request for advice on using or
replacing dropbox due to performance reasons with a large number of files
(about 0.5M+ files).

I used to be a huge supporter of dropbox.  It used to just work and was
reasonably responsive.  Then it just stopped working for me last year.

I think this may have been around the time when the OS updates were made
for Spectre and Meltdown Security Flaw.  The drop in effective performance
of the CPU may have pushed the machine below the capacity to run the
software???

I attempted to get some help from dropbox but that was a huge waste of time.

I have now just got around to looking at alternatives.

The first one I tried was One Drive.  Because I am in a Microsoft setup,
One Drive was the first logical choice.

My current One Drive setup has 283K files in 105K folders with 70GB in the
cloud and 27GB on the local machine.

With One Drive in use, I have noticed the “One Drive Sync Engine” along
with the “Windows Search Indexer” tasks running all the time, pushing up
the CPU usage and the fans on the system are running to cool it down (which
beforehand never happened).  It is somewhat clever enough to know when
there is interactive use and push the priority of the task down.  But if I
go away from my desk for a few minutes the task is taking a lot of CPU and
the fans are running again.

What I am looking for in a dropbox alternative is:

1.   Reasonable performance

2.   Online backup of working files

3.   Reasonable price (yes I will pay for it)

I think that my options are:

1.   https://www.dropbox.com – Should I go back and try again

2.   https://onedrive.live.com/ - Are the problems I am having
consistent with your experience?

3.   https://www.google.com/drive/

4.   https://www.box.com/

5.   Other

I am running an old Intel Xeon 2.8GHz with 32 GB RAM as the base machine
with a 3 core 10 GB VM inside it as my primary work horse machine.

It has been clear the Moore’s law has died in the last five years, so I
have seen no clear and present need to upgrade this machine.  I am thinking
that may be wrong, do I just need a new machine???


Thanks for your help on this :-)


Greg Harris
Harris Consulting Group Pty Ltd
g...@harrisconsultinggroup.com
www.HarrisConsultingGroup.com <http://harrisconsultinggroup.com/home.htm>
phone: (international) +61 407 942 982
phone: (within Australia) 0407 942 982
Sydney
Australia


Re: Blazor comments

2019-04-19 Thread Greg Harris
Blazor is now in official preview
https://devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/

Greg Harris
Harris Consulting Group Pty Ltd
g...@harrisconsultinggroup.com
www.HarrisConsultingGroup.com <http://harrisconsultinggroup.com/home.htm>
phone: (international) +61 407 942 982
phone: (within Australia) 0407 942 982
Sydney
Australia


On Wed, Jan 30, 2019 at 8:31 PM DotNet Dude  wrote:

> I believe Silverlight died mainly because of the lack of support for the
> plugin on iPhones. Blame Apple.
>
> On Wed, 30 Jan 2019 at 17:53, Arjang Assadi 
> wrote:
>
>> until a rendering engine is included I can not see any benefit to using
>> blazer or any other WASM equivalents. Flash as bad as it was , was a better
>> solution , no idea what the big idea was to kill it off , or for that
>> matter ms unilaterally killing silver light.
>>
>>
>> On Wed, 30 Jan 2019 at 5:26 pm Greg Keogh  wrote:
>>
>>> Folks, has anyone else in here given Blazor a good bash and got
>>> comments? I've run some sanity tests on 0.7 and it's looking pretty good.
>>> You can reference packages and projects, there's basic binding (which I
>>> hope they improve), you can break things up into "components" and nest
>>> them, separate code-behind if you want, register and inject services,
>>> define routing, make async web calls, deploy to Azure web apps, etc. All
>>> this stuff I mentioned is in the docs, but I had to try it myself to see if
>>> it really works. The only thing I haven't tried yet is rendering a large
>>> complex page to see how it performs and responds to DOM changes.
>>>
>>> So finally it looks like there's a real chance in the .NET ecosystem
>>> that the crazy zoo of JS frameworks to make SPAs will be displaced by a
>>> familiar and respected languages and frameworks. Great, but suddenly I was
>>> slapped hard by a shocking realisation … we're still stuck using the web
>>> browser and HTML (and some JS glue) for rendering the UI.
>>>
>>> The web browser cannot render complex business app UIs. Where are the
>>> rich controls and layout features we are used to on the desktop, or in
>>> Silverlight, or Flash or Java Applets for that matter? HTML was created to
>>> render simple text and pictures and now 27 years later it's completely
>>> effing stupid that we're still trying to create apps with it. We're
>>> changing how those apps are written, but we're still stuck with the damn
>>> browser and HTML for rendering.
>>>
>>> I have an example … a few weeks ago I wondered by a web page was taking
>>> 40s to load. It turned out I was loading a tree (a fake one, as there is no
>>> tree control) with 4000 nodes, each one in a div and 3880 of them were
>>> hidden. So the page looked small and tidy, but there were thousands of
>>> hidden divs. I spent hours of suffering inventing a click-demand-load
>>> technique. There is no virtualisation in HTML, which is taken for granted
>>> in real UI frameworks.
>>>
>>> There endeth the good news and the bad news.
>>>
>>> *Greg K*
>>>
>>


Re: Blazor?

2018-08-04 Thread Greg Harris
Hi Greg K,



>From our conversations in late May updated, no I am not using Blazor yet,
but...



My feeling is still very negative towards the whole front end development
situation.

If your favourite language is C#, then Web Assembly and Blazer offers some
real promise.



Looking at the major releases:

#

Date

Days ago

Delta

Link

0-5-0

25-Jul

11

48

https://blogs.msdn.microsoft.com/webdev/2018/07/25/blazor-0-5-0-experimental-release-now-available/

0-4-0

7-Jun

59

36

https://blogs.msdn.microsoft.com/webdev/2018/06/07/blazor-0-4-0-experimental-release-now-available/

0-3-0

2-May

95

15

https://blogs.msdn.microsoft.com/webdev/2018/05/02/blazor-0-3-0-experimental-release-now-available/

0-2-0

17-Apr

110

70

https://blogs.msdn.microsoft.com/webdev/2018/04/17/blazor-0-2-0-release-now-available/

0-1-0

???

6-Feb

180



https://blogs.msdn.microsoft.com/webdev/2018/02/06/blazor-experimental-project/



>From release 1 to 2 took 70 days, which is fair enough.

The next release was 15 days later, then 36, 48 days apart.

I am seeing a pattern here, the inter release gap is growing!

That can mean many things, but in a vacuum of other information I am left
guessing…  it could be:

1.The project has lost momentum

2.The project is out of control and they are breaking features as they
add new features, so it is taking more time to clean up between each release

3.The project is maturing and the releases are now just minor
refinements

4.Other



For me, I am thinking that 2 or 4 is likely to be the truth…

It is clearly not 3, or there would have been a version 1 release.



If you look at https://github.com/aspnet/Blazor/commits/master

You see the last commit was yesterday...

There are commits every few days from a mix of people

So the project is still current



Also worthwhile to read: https://github.com/aspnet/Blazor/wiki/FAQ



There have been some recent articles on Code Project for Blazor:

https://www.codeproject.com/Articles/1254687/Lets-learn-to-make-Shopping-Cart-using-ASP-NET-Cor

https://www.codeproject.com/Articles/1254712/Music-Notation-in-Blazor-Part-2

https://www.codeproject.com/Articles/1251603/ASP-NET-Core-Blazor-Master-Detail-CRUD-with-Filter



Updated Greg Harris’ current personal opinion:

· If Microsoft does this right (not willing to comment on that)

· If it remains open source

· After it gets a little more mature.

· After Microsoft (or other large company) makes a public
commitment to the technology

· If it works as expected

I may change my attitude to the technology to support it



In summary… Blazor looks like it could be a great technology, but after the
right @#$%^&* up that was Silverlight where Microsoft #$%^&* us after
building a great product, I am going to wait a little longer before I jump
to another new product.



My gut tells me that I should make the jump to Blazor.

But my head continues to say wait and see...



This opinion is supported by the inter release gap growing and a lack of
public commitment from MS.


If I had a current project that needed a strong front end, I may rethink
this a little.



All the best

Just another Greg in the room :-)


Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
Baulkham Hills
NSW 2153






On Sat, Aug 4, 2018 at 4:36 PM Greg Keogh  wrote:

> Has anyone done anything useful with Blazor? Does anyone think it will
> become useful for writing serious client-side web apps?
>
> I ask because I spent the whole afternoon stuffing around with it. After
> bumbling around installing and uninstalling different Core and Standard
> SDKs and Runtimes, and installing a VS2017 extension, I managed (after a
> lot of hassle) to get the demo running.
>
> Then I noticed I had 10 different runtimes installed so I uninstalled the
> ones I thought were older version near-duplicates. That broke my Blazor
> development for ever more. I have tried to reinstall and reconstruct the
> environment I had earlier when the demo worked, but I've only partly
> succeeded. Now the demo runs, but dies with a generic app failed message.
> I'm completely stuck there now.
>
> That aside, I'm disappointed that the resulting app is still based upon
> html, css and JavaScript. It's unclear just how JS is being used in the mix
> and what role it's playing. So despite the promises of Wasm with Blazor,
> we're going to spend the next decade continuing to try to cobble together
> UIs with top quality appearance and behaviour in html, css and scripts in
> web browsers, and Wasm does nothing to help get us out of this
> browser-based quagmire … pull the other one!
>
> Or do I misunderstand the architecture and Wasm makes better promises that
> I haven't seen yet? Now I realise just how much I miss writing "real" apps
> with XAML in Silverlight.
>
> *Greg K*
>


[Off Topic] Generic system vulnerabilities testing tool – Open ports etc

2018-06-20 Thread Greg Harris
 Hi All,

My client is looking for a tool (they are willing to pay for it) that will
warn them of potential exposures on a production system.

I think that we may be looking for multiple tools here, because the
requirements are wide…

He has asked for something that runs in the background continually scanning
the system for vulnerabilities so that if something gets opened up we know
about it fairly quickly.  Looking for things like open network ports, SQL
injection attack possibilities, application data entry fields that do not
have validation / verification.

Looking at
https://cwatch.comodo.com/blog/website-security/top-10-vulnerability-assessment-scanning-tools/,
https://www.techrepublic.com/article/solutionbase-take-advantage-of-vulnerability-scanning-tools-to-increase-network-security/
and
https://www.comparitech.com/net-admin/free-network-vulnerability-scanners/

There are a lot of tools out there.

This is an area I where I have little experience, so if anybody has
experience and can provide some advice I would be very grateful.

Thanks in advance

Greg H

Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
Baulkham Hills
NSW 2153


Re: Thoughts on Web Assembly and Blazer

2018-05-26 Thread Greg Harris
99% Agreed Greg :-)
If I were to write a graphics editor.
I would probably want to use Win Forms, so I could control every pixel.
But I am not doing that.

But I would also say that I write regular new Win Forms apps.
Why, because they are real simple, Not because I want to control every
pixel.

I would love to see HTML giving us the same level of control as we have
with XAML.
Maybe we should look at https://xaml2html.net/ or similar?

Maybe Blazor should include a XAML pre-process option, then it would be
great.
But I think it is going to be good enough.
But I have not seen any new Blazor stuff on
https://blogs.msdn.microsoft.com/webdev/ for 25 days...

Regards
Greg H

Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
Baulkham Hills
NSW 2153



On Sat, May 26, 2018 at 10:44 PM, Greg Keogh <gfke...@gmail.com> wrote:

> To get complete control of the UI.
>> You need to know where every pixel goes.
>> Windows forms is the best tool for the job.
>>
>
> That's TOO complete! A great UI can be done with relative layouts (panels,
> padding, margins, grids, scaling, etc). I haven't written a WinForms app
> for several years because WPF/XAML (and Silverlight) lets me compose
> everything relative to everything else and I don't care about pixels any
> more --* Greg (K)*
>


Re: Thoughts on Web Assembly and Blazer

2018-05-23 Thread Greg Harris
If you want real control of your UI, it is simple...
DO NOT WRITE WEB APPS
Anything that runs inside the browser is going to be different when you
change
- The browser
- The OS
- The screen size
- The screen resolution
- Almost anything else (OK that is going too far)

As soon as I do anything with HTML / CSS, I give a some control.
(and it becomes a whole lot harder)

Most apps do not need complete control of the UI.

To get complete control of the UI.
You need to know where every pixel goes.
Windows forms is the best tool for the job.
An old trusted simple technology.

Greg (H)

Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
Baulkham Hills
NSW 2153



On Thu, May 24, 2018 at 12:57 PM, Greg Keogh <gfke...@gmail.com> wrote:

> Steve Sanderson has a blog post on blazor that provides you with insight
>> into their current thinking. Blazor: a technical introduction
>>
>
> One aspect of this still has me quaking in fear … is it all hosted inside
> a browser, and is the UI written in HTML and CSS?
>
> If so, then we've still got one crippled foot in the stinking old sewage
> of browsers and HTML. In Silverlight you could create a "real" robust and
> rich UI by defining it in XAML that was completely independent of HTML. The
> WebAssembly and Blazor docs I've read so far (not a great amount) don't
> discuss plans for the UI clearly. They talk about Razor and tags with
> special syntax, so I assume your WebAssembly application will interact with
> the browser DOM using special markup. If so, Lord help us!
>
> I'm praying for the day when I can write "web apps" (even the name is
> archaic) using a real language with a real compiler in a real IDE to
> produce a real UI with real performance and real reliability.
>
> One day we'll look back and laugh about the old days when they thought
> JavaScript would lead us all into a brighter future.
>
> *Greg (K)*
>


Re: Anyone out there?

2018-05-23 Thread Greg Harris
If you look at https://www.mail-archive.com/ozdotnet@ozdotnet.com/ you can
see a dump of activity...
Yes we do seem to have less activity these days.

Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
Baulkham Hills
NSW 2153



On Wed, May 23, 2018 at 6:37 AM, kirsten greed <kirsten.gr...@gmail.com>
wrote:

> Hello
> I sent a post yesterday but nothing has come through on the list
> KIrsten
>


Re: Thoughts on Web Assembly and Blazer

2018-05-23 Thread Greg Harris
No I am not using Blazor yet, but...

My feeling is very negative towards the whole front end development
situation.
Silverlight was a great technology ten years ago.
After what Microsoft did to us I have huge trust issues with them now!

JavaScript is a whole different paradigm which in my arrogant opinion is
not a real language!
There are tools that make JavaScript slightly less bad.
But it is still JavaScript!

Maybe Angular is almost at the same level of functionality now that
Silverlight was ten years ago???
But it adds hundreds of open source code libraries to my solution which I
have no control over.
I see that as a DevOps / DevSecOps nightmare!
I am NOT recommending Angular to my clients!

My preference would be to do as little as possible on the front end, in the
real world that is not possible!

My current advice to my clients is...
Have HTML on your front end.
Call back to the server where you can run your favorite language in a
controlled environment.
Send back new chunks of HTML to update the display as needed.
Do as little as possible in JavaScript.

If your favorite language is C# Web Assembly and Blazer offers some real
promise.
My understanding is at the recent build conference there was not even any
discussion about Blazor.
Maybe Microsoft has learned not to talk about what they have not yet made a
firm commitment to
They are trying to do a release every 14 days see
https://blogs.msdn.microsoft.com/webdev/
Last release was 2-May (V0.3, 22 days ago,
https://blogs.msdn.microsoft.com/webdev/2018/05/02/blazor-0-3-0-experimental-release-now-available/
)
Then 17-April (V0.2,
https://blogs.msdn.microsoft.com/webdev/2018/04/17/blazor-0-2-0-release-now-available/
)

If you look at https://github.com/aspnet/Blazor
You see the last commit was a day ago.

Also worthwhile to read: https://github.com/aspnet/Blazor/wiki/FAQ

I could not find the comment again about the 14 day release cycle.
Maybe that has gone away

Opinion:
If Microsoft does this right (which they look to be doing)
If it remains open source
After it gets a little more mature.
After Microsoft (or other large company) makes a public commitment to the
technology
If it works as expected
I will change my attitude to the technology to full support

After Microsoft !@#$%^& us with Silverlight, I think they are being careful.
But also I will be very careful about picking any new technology.

My gut tells me that I should make the jump to Blazor.
But my head is still say wait and see...

All the best
Just another Greg in the room :-)



Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
Baulkham Hills
NSW 2153



On Tue, May 22, 2018 at 8:57 AM, kirsten greed <kirsten.gr...@gmail.com>
wrote:

> Hello
>
> Is anyone out there using Web Assembly and Blazer for real projects?
>
> I just spent a couple of days trying to get the code generated by Visual
> Studio's AutoRest add in  to work with Bearer token security.
>
> It turns out that the Autorest project on Github has moved on from that
> old code and done a big re-write
>
> Greg's blog at https://gfkeogh.blogspot.com.au/2018/02/im-in-future-
> of-web-and-it-doesnt-work.html
>
> back in February did sum up everything eloquently in my view.
>
> Is anything better out there yet?
>
> Thanks
> Kirsten
>
>
>
>


Re: Trusted cloud based source control system where the code is Australian domicile? [Slightly off topic]

2018-03-21 Thread Greg Harris
Thank you David  times 2, that will save me quite a bit of pain :-)

Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
45/1 Russell St
Baulkham Hills
NSW 2153



On Thu, Mar 22, 2018 at 10:12 AM, David Connors <da...@connors.com> wrote:

> Failing that, standing up a Git repo on an IaaS VM in one of the Australia
> regions is easy too.
>
> On Thu, 22 Mar 2018 at 09:05 David Gardiner <da...@gardiner.net.au> wrote:
>
>> VSTS allow you to choose 'Australia' as a hosting region. According to
>> https://www.microsoft.com/en-us/trustcenter/privacy/vsts-location,
>> source code would be kept in Australia, though some other types of data
>> could be stored elsewhere.
>>
>> David
>>
>> On 21 March 2018 at 22:37, Greg Harris <harris.gre...@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> I have a client that is concerned about Australian domicile data.
>>>
>>> They are happy to use cloud based services, so long as the data is
>>> Australian domicile.
>>>
>>> We are currently using MS Azure with Australian domicile data / services.
>>>
>>> We want to use a cloud based source control system.
>>>
>>> But my expectation is the data (code) is all held in US data centres.
>>>
>>> *Question: Does anyone know of a trusted cloud based source control
>>> system where the code is Australian domicile?*
>>>
>>> I was thinking of Bit Bucket (https://bitbucket.org/) being Atlassian,
>>> I was thinking that they may use Australian based storage??? But I think
>>> that all of their storage is Amazon S3 (https://aws.amazon.com/s3/)?
>>>
>>> And I could see no documentation that says Aust based storage.
>>>
>>> We could self host, but that is just more work I don't want to do...
>>>
>>>
>>>
>>> Many Thanks
>>>
>>> Greg Harris
>>>
>>> Greg Harris
>>> harris.gre...@gmail.com
>>> phone: 0407 942 982
>>>
>>>
>>>
>>
>> --
> David Connors
> da...@connors.com | @davidconnors | https://t.me/davidconnors | LinkedIn
>  | +61 417 189 363
>


Trusted cloud based source control system where the code is Australian domicile? [Slightly off topic]

2018-03-21 Thread Greg Harris
Hi All,

I have a client that is concerned about Australian domicile data.

They are happy to use cloud based services, so long as the data is
Australian domicile.

We are currently using MS Azure with Australian domicile data / services.

We want to use a cloud based source control system.

But my expectation is the data (code) is all held in US data centres.

*Question: Does anyone know of a trusted cloud based source control system
where the code is Australian domicile?*

I was thinking of Bit Bucket (https://bitbucket.org/) being Atlassian, I
was thinking that they may use Australian based storage??? But I think that
all of their storage is Amazon S3 (https://aws.amazon.com/s3/)?

And I could see no documentation that says Aust based storage.

We could self host, but that is just more work I don't want to do...



Many Thanks

Greg Harris

Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982


Log filter / display dashboard - Looking for recommendation [Slightly off topic]

2018-03-12 Thread Greg Harris
Hi All,

Question: Can you recommend a standard dashboard app that takes multiple
logs, filters out the 99% that is not relevant, works out a status,
displays a panel of Green, Amber, Red blobs with hyperlinks to detailed log
info?

Details:

I am doing an architecture consulting gig for a client (a mostly MS Windows
/ Azure site, but there are some Unix servers out there as well).

They have about a dozen core applications that the business is highly
dependent on and another 100 or so that they are less dependent on.

The problem being that when something goes wrong, vendor A says “the
problem is with vendor B’s system” and you know what vendor B says.  What
makes this worse is that the chain goes through multiple vendors and
systems with long inter system data flows.

I want to make the recommendation to them that they implement logging and a
top level log display dashboard for the systems they are highly dependent
on.  The dashboard would show:

1.   Dataflow around the systems

2.   Work backlog at each sub system

3.   Status at each sub system

4.   Time since last ping at each sub system

This feels to me to be a standard sort of system that every major site
needs!

I am not sure what to recommend???

Question: Can you recommend a standard dashboard app that takes multiple
logs, filters out the 99% that is not relevant, works out a status,
displays a panel of Green, Amber, Red blobs with hyperlinks to detailed log
info?

I am thinking of Nicholas Blumhardt’s Seq application (https://getseq.net/)
or Datadog (https://www.datadoghq.com/) but neither of these feel quite
complete to me.

We will need a hierarchy solution:

1.   App logging (has to be baked into existing and new apps)

2.   Forwarded to Site Logger (maybe baked into the app, or as an add
on)

3.   Site Logger

4.   Filter

5.   Analysis

6.   Dashboard display

At level 1 if logging needs to be added to an existing or new system, I am
thinking that the recommendation will be to use Serilog (
https://github.com/serilog) or Datadog (https://www.datadoghq.com/).

If the app already has logging, I am thinking that some form of log
forwarder is needed, I want to avoid paying for apps to be modified to meet
this need if they already have logging.

Levels 2-6 could be should be a standard off the shelf app.

Any advice would be greatly appreciated.

Best Regards

Greg Harris
Greg Harris
harris.gre...@gmail.com


Re: Creating a browser-based product

2017-11-22 Thread Greg Harris
Blazor sounds like a good starting point, but it is not yet ready to do
real world work.

I must admit, I had not looked at Blazor until now because I had been told
"it is just a toy, an experiment".  After looking at it, I feel that it has
the potential to be the basis of something transformational.



You can see more of the story at:
http://blog.stevensanderson.com/2017/11/05/blazor-on-mono/

Which has a link to a video of his demo app from NDC Oslo:
https://www.youtube.com/watch?v=MiLAE6HMr10=youtu.be=31m45s which
is seriously worth watching!



Then reading: https://github.com/SteveSanderson/Blazor

"An experimental web UI framework using C#/Razor and HTML, running
client-side via WebAssembly

The arrival of WebAssembly creates the possibility of building client-side
web applications using languages and runtimes that are more typically used
for native app development. Blazor runs .NET code in the browser via the
Mono runtime, which itself is compiled to WebAssembly and asm.js.

The programming model will be familiar to anyone who's worked with Razor
(the C#/HTML page format used by ASP.NET MVC and ASP.NET Pages)."



Which all looks really promising, until you read…



Can I build a real production app with this?

No. It's very incomplete. There isn't yet any support for producing
optimised production builds or connecting a debugger.



Why isn't there an issue tracker? How do I file issues?

You don't file issues. There's no support for this. It's experimental.


This is all bleeding edge stuff, that blog post is from 5-Nov

I will wait a little longer before making any bets on this...

But I repeat...

I feel that Blazor has the potential to be the basis of something
transformational!


Re: Creating a browser-based product

2017-11-21 Thread Greg Harris
Sorry, another Greg rant to follow…


Web based apps are a slightly better form of dumb terminal app that you
could have had running on your DEC VT-100 (
https://en.wikipedia.org/wiki/VT100) or IBM 3270 (
https://en.wikipedia.org/wiki/IBM_3270) terminal in the 1980’s.  I first
used a VT-100 in 1979, the modern browser has added graphics and
Javascript.  We have not moved that far forward in 38 years!


I have used reasonable interactive programs on VT-100 and 3270 terminals,
but programs that use the full power of the client machine’s power, provide
a significantly improved end user computing experience.


Plugins like Silverlight and Flash made web apps open to using a lot more
of the client machine’s resources to provide an interactive experience.
 But, the industry has not supported these plugins for some reason I fail
to fully understand.


If we cannot use Silverlight or Flash and fat clients are too hard /
expensive to install, you are back to the dumb terminal browser plus
Javascript again.


Look at compute intensive apps like 3D modelling or video editing, they
could never be done properly with today’s browser technology!


Web Assembly (https://en.wikipedia.org/wiki/WebAssembly) may be a logical
sandboxed solution to these problems.  But I see Web Assembly as an
immature technology that needs evolution to be production application ready.


In the meantime, I will continue to program as much as I can, with as much
of the logic as possible running on the server where I have 100% control.
The client can ask for additional chunks of UI (html) to be sent down the
wire (AJAX) and I will avoid as much logic as possible in the client UI.


Or maybe even a win forms app, because it is fast, I have 100% control *and
it is not really that hard to install*!


Silverlight looked like such a logical solution to this problem.  Ten years
after Silverlight, we are not yet at the point where we can provide a
solution anywhere near as good.


Frankly when I look at the way this technology has moved in the last 20
years, I am very *VERY* disappointed by our industry!


All the best

Greg Harris



On Wed, Nov 22, 2017 at 3:34 PM, Tony Wright <tonyw...@gmail.com> wrote:

> Well in the javascript world we don't have dll hell so much anymore, we
> have package hell.
>
> On 22 Nov 2017 2:43 PM, "Ken Schaefer" <k...@adopenstatic.com> wrote:
>
>> Inline
>>
>>
>>
>> *From:* ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-bounces@ozdot
>> net.com] *On Behalf Of *Greg Low
>> *Sent:* Wednesday, 22 November 2017 2:09 PM
>> *To:* ozDotNet <ozdotnet@ozdotnet.com>
>> *Subject:* Re: Creating a browser-based product
>>
>>
>>
>> Agreed but you’re running it in the environment provided by your thick
>> client (ie the browser) which you did already deploy and which continues to
>> be patched.
>>
>>
>>
>> I didn’t say thick clients don’t work – I said that they don’t work “at
>> scale”
>>
>> If you have just one, (or maybe two or three) clients, then life is
>> manageable.
>>
>>
>>
>> The browser provides a kludgy sandbox for apps to run in. The browser was
>> never designed for this purpose and does it pretty poorly. Surely we could
>> have had a better purpose built sandbox.
>>
>>
>>
>> Then we’re back to something David touched on earlier. The idea that a
>> small group of people can build a universally used system, that will work
>> for the varied use cases of the entire world, both now and into the future,
>> resulted in something we call “Microsoft Windows”. Think of this as a
>> centrally planned economy
>>
>>
>>
>> The only other alternative we have is an imperfect, un-optimised,
>> de-centrally built system, like web delivered apps that run in browsers.
>> Think of this as “the invisible hand of the free market”
>>
>>
>>
>> I think the real free market has spoken as to what model it finds more
>> attractive, regardless of its imperfections.
>>
>>
>>
>>
>>
>> Regards,
>>
>>
>>
>> Greg
>>
>>
>>
>> Dr Greg Low
>>
>> 1300SQLSQL (1300 775 775) office | +61 419201410 <+61%20419%20201%20410>
>> mobile│ +61 3 8676 4913 <+61%203%208676%204913> fax
>>
>> SQL Down Under | Web: www.sqldownunder.com
>> --
>>
>> *From:* ozdotnet-boun...@ozdotnet.com <ozdotnet-boun...@ozdotnet.com> on
>> behalf of Ken Schaefer <k...@adopenstatic.com>
>> *Sent:* Wednesday, November 22, 2017 2:00:21 PM
>> *To:* ozDotNet
>> *Subject:* RE: Creating a browser-based product
>>
>>
>>
>> I think people have been l

Re: Creating a browser-based product

2017-11-20 Thread Greg Harris
Hi Greg #1,

After the cluster fail that has been Javascript and Silverlight...
I am NOT optimistic that anything will change in a positive way real soon.

My gut tells me that Web Assembly will be the way of the future.
But ten years ago, that same gut told me, you and a lot of other people
that Silverlight would be the way of the future!
I think that Web Assembly is at about Silverlight 1.0 level about now...

By now, I would have expected a good C# implementation on Web Assembly.
So there may be some other reason why we are not getting it

Recommendation:
If you can, I would hold off a little and do a bit of study into Angular.
If MS or someone else comes out with "a nice" language for Web Assembly -
use it.
Otherwise fall back to Javascript / Angular.
Latest version of Visual Studio has much better support for Angular.
(But I have not really used it so can not advise)

Now I like Mike's idea Pascal for the web?!

The great (bad) thing about Javascript is it will not go away any time
soon! (SAD FACE)

All the best
Greg #2

Greg Harris
harris.gre...@gmail.com
phone: 0407 942 982
45/1 Russell St
Baulkham Hills
NSW 2153



On Tue, Nov 21, 2017 at 8:06 AM, Greg Keogh <gfke...@gmail.com> wrote:

> Can you afford to wait for http://webassembly.org too get to production
>> ready???
>>
>
> A bit of reading on this does give me some optimism. The idea of a widely
> supported general purpose bytecode that runs in browsers is a great idea.
> But hang on ... haven't we been here before? What is Java bytecode, what is
> IL? Now we'll have another one, but at least is seems to be getting input
> from all the big companies. Then we pray for how long it will take before
> the developer frameworks and language bindings pop up around it. How long
> before I can write, debug and deploy a webassembly app from Visual Studio?
>
> *Greg #2*
>


Re: Web debugging problem solved

2017-08-30 Thread Greg Harris
Real programmers program in FORTRAN edited with TECO!

On Wed, Aug 30, 2017 at 5:15 PM, Tom Rutter <therut...@gmail.com> wrote:

> Real programmers don't use context menus or even the mouse to be fair
>
> On Wednesday, 30 August 2017, Greg Keogh <gfke...@gmail.com> wrote:
>
>> The option is also in the toolbar in the dropdown next to the "play"
>>> button where you choose IIS Express or whatever else.
>>
>>
>> Real programmers don't use toolbars! (but you're right, it's in the
>> "Standard" bar, which I've hidden for years) -- *GK*
>>
>


-- 

*Best Regards*

*Greg Harris*

CEO Harris Consulting Group

g...@harrisconsultinggroup.com

www.HarrisConsultingGroup.com <http://www.harrisconsultinggroup.com/>

0407 942 982


Re: [OT] New surface laptop

2017-07-03 Thread Greg Harris
*Strong recommendation not a DELL!*
DELL took my working machine, broke it in a service call and would not take
responsibility for the breakage!
They knew it was not worth my time to take it any further!
Now I will never buy a DELL again!

On Mon, Jul 3, 2017 at 1:19 PM, Tom Rutter  wrote:

> Anyone got the new surface laptop? If so, thoughts?
> My old reliable dell laptop took its last breath today. :(
>
> Cheers
>


Re: [OT] New PC no video

2016-01-23 Thread Greg Harris
Hi Greg,

Warning tangent alert...

Back in the day (early 80's) one of my mates to test the boot process of a
new machine, would set his transistor radio going next to the machine.
It would be totally off station so as just to hear static.
Then as the machine boots, you listen to the RF interference.
As the machine executes different parts of the boot sequence there were
clear changes in the tone.
(memory checks are long sequence of the same tone, other processes are all
over the place, nothing is nothing)
You need to know the sound of a healthy boot to recognise an unhealthy boot.

I thought he was mad until I saw it!
I do not think it would be as valid today with much faster clock speeds.
This was on machines based on M6800 CPUs (
https://en.wikipedia.org/wiki/Motorola_6800).

Regards
Greg

On Sat, Jan 23, 2016 at 6:35 PM, DotNet Dude  wrote:

> Glad it's explainable at least. Would hate to have it magically work
> suddenly
>
> On Saturday, 23 January 2016, Greg Keogh  wrote:
>
>> My friend just rang to say he got the new box working, but in a way the
>> confused and worried him. He also could get no video out of the
>> motherboard, so in desperation he stuck a video card in, and it worked.
>> Then in the BIOS screen he set it to use "onboard video" (which normally
>> has to be the default), after which it works without the video card. So how
>> stupid is that?! A perfect Catch-22 .. you can't configure the video to
>> work until you get the video working. Sheesh! I'wondering if the ASRock
>> board come out of the factory with the wrong settings -- *GK*
>>
>> On 23 January 2016 at 17:43, Ian Thomas  wrote:
>>
>>> We couldn't even get the BIOS screen to show -- *GK*
>>>
>>> That’s tell-tale for RAM not seated, and/or CPU. I’m not sure with these
>>> new MBs whether there is a connection to a speaker but it was used as a
>>> useful fault detection by a pattern of “beeps”. Your MB’s guide may show a
>>> pattern of LEDs for fault diagnosis (green/red lights on the board).
>>>
>>>
>>>
>>> Ian Thomas
>>>
>>> Albert Park, Victoria 3206 Australia
>>>
>>>
>>>
>>
>>


Re: Escrow : anyone been involved in the process?

2015-11-05 Thread Greg Harris
Hi Preet,



Escrow is normal business practice and it says they are taking the
relationship seriously.



Yes, get a good legal adviser to give you good advice!



Many years ago, I paid many thousands of dollars to get the following
agreement written up (which was very poor advice).

As I paid full price for it and there is no do not release clause in the
contract, please feel free to use as you need (but at your own risk).

I have taken out identifying information to protect the guilty and
incompetent!



Be warned, look at clause 10C and 11B, you will see the text:

10C: If any of the events specified in paragraphs (i) to (v) of this Clause
10 (c) occur

11B: If the events specified in paragraphs (i) to (iv) of this Clause 11(b)
occur

The failure of my useless lawyer to include the phrase “any of” in 11B cost
me months of f---ing about, when the client went bankrupt and I had to
prove that each of the four trigger events had occurred before I could get
out of the contract.



Yes I should have seen that, but that is what I was paying my shit useless
lawyer for.

Oh and by the way, I hired one of the “big” law firms, who you pay not to
make this sort of mistake.  I should have sued the bastard lawyer that
wrote up the agreement!


Most escrow firms these days will have a standard agreement, which will be
balanced between serving your company and your client's company, but will
give the escrow company as much wiggle room as they can.

I was surprised that the escrow company we used did not have a standard
agreement and it cost me so much to get one written!

But this was a long time ago (in the 1990's).


A bit of Googling around I am sure will find you other agreements online.


Make sure you look at the release clauses and make sure that you are
comfortable with them.

Take care, what if the client does not upgrade, are you still supporting
their version of the software?

That could trigger a release.



Regards

Greg


*SOFTWARE ESCROW AGREEMENT*

DATED: dd-mmm-



*PARTIES:*



1.  ESCROW company

ACN 123 456 789



2.  My Company

   ACN 123 456 789



3.  Client Company

   ACN 123 456 789




*THIS SOFTWARE ESCROW AGREEMENT* is made on dd-mmm-


BETWEEN:   Escrow Company of the first part.

Address
  AND My Company of the second part

Address
  ANDClient Company of the third part

Address



* WHEREAS:*



*A.*My Company and Client Company have jointly developed
computer software and related material (“Software Package”).  Where My
Company owns the Source code and Client Company owns the right to use the
source code on the terms set out in the Agreement.



*B.*Access to the Material (as defined hereunder) may be
required by Client Company.



*C.*My Company has agreed to deposit with Escrow Company a copy
of the Material to enable Client Company to obtain access to the Material
in the circumstances specified in this Agreement.





*NOW THIS AGREEMENT WITNESSES:*



*1.**Definitions.*



In this Agreement the following terms have the following meanings:



*“Deposit Package”* means the latest version of the Material delivered to
and held by Escrow Company, along with:



(1)   each previous version of the Material up to four previous
versions; or



(2)   each previous version of the Material, each such version to
be held by Escrow Company for three months from the date of delivery to
Escrow Company of the subsequent version, whichever is the greater number
of versions.



*“Agreement” *means the Software Ownership, Support & Maintenance Agreement
between the My Company and Client Company dated dd-mmm- pursuant to
which Client Company owns the right to use the Software Package and My
Company retains the ownership of the Source code.



*“Material”* means a copy of the source code and object code together with
other documentation relating to the Software Package which may be required
by Client Company for the understanding, maintaining, modifying and
correcting of the Software Package and which is not furnished by My Company
to Client Company under the Agreement, except pursuant to clause 12 thereof.



*“Modification” *means a change to the Software Package provided by My
Company to Client Company under the Agreement which is designed to overcome
errors or malfunctions, or designed to improve the operation of the
Software Package and includes a new version of the Software Package.





*2. Appointment of Escrow Holder*



Escrow Company is hereby appointed jointly by My Company and Client Company
and is granted full power and authority to act on behalf of each party on
the terms and conditions of this Agreement.



*3. Duration*



This Agreement shall remain in force until the Deposit Package is released
in accordance with this Agreement or the Agreement is otherwise terminated.




Re: Odd text encoding

2015-09-10 Thread Greg Harris
Oh Yeah!

Friday rant to follow...

>From my experience there usually is no good reason for this sort of thing.
I've seen people attempt to store phone numbers as a number and surely most
here have seen similar things.
>Yea the phone number thing *facepalm*
>ask them how they gonna store 000 as number.
>i think ive read it somewhere, a rule of thumb is if you dont need to do
calculations with your "number", make it a string

Several years ago we were working on a soft copy bill delivery system for
one of the telcos.
The specification I wrote said that the phone number was a text field with
a maximum length of some large number.

The vendor who wrote the analysis software for us saw NUMBER looked at a
few of them and said IT MUST BE AN INTEGER!
and besides integers are small and fast to process => good.
When you dialled special numbers, text would be put in the field, like
"000" became "Emergency Services"
Or for an international number the international prefix would be replaced
by a "+".
They got very upset when they ran through the bulk of the test data we gave
them with the specification and many of them failed!

Yes I think that I agree with the comment "a rule of thumb is if you don't
need to do calculations with your "number", make it a string"

I may reword that as if the number is a measurement, it probably is best
being a numeric, if it is a business generated identification it is
probably best being a string.

Have fun

Greg #27


Re: Last words on AngularJS

2015-08-24 Thread Greg Harris
I just have to say it

To avoid all of this JS pain, we should all be using Silverlight!

Regards
Greg Harris

On Mon, Aug 24, 2015 at 8:25 PM, Greg Keogh gfke...@gmail.com wrote:

 Paul, most of what you said actually supports my anguish over the
 lottery of kits, tools, packages and standards (ha!) and fads in the
 JavaScript ecosystem.

 Over the last week or more since I expressed my dismay, I've been reading
 more and more about the zoo of frameworks that decorate JavaScript and
 attempt to hoist it up into the world of real languages. It's getting so
 stupid that the AngularJS seems to have decided to completely rewrite it
 for v2 using TypeScript, and someone got upset and split off to make
 Aurelia because it was more pure, but apparently they're friends again
 now, I think. It's worse than a zoo, it's like a steaming compost bin.

 I got all excited about TypeScript last weekend and I spent an afternoon
 reading about it and fiddling to see if it has promise. So I create a new
 HTML project and I get one small source file that shows the time. The
 sample code is raw JS from the 90s and I have to go looking for a way to
 integrate jQuery and/or AngularJS into the project. So dozens of
 opinionated pages later I discover I just about have to reinvent the steam
 engine to try an integrate them, and there are literally dozens of experts
 all claiming they know they best way to do it, with all sorts of cryptic
 pseudo-functional coding tricks. I simply want to know how to structure a
 large TS project, but there is no reliable guidance anywhere, it's just a
 dogs breakfast.

 This is what happens when a script becomes accidentally promoted to become
 the new fangled language to drive LOB apps in the web without proper
 planning by industry experts and academics. There are no conventions for
 code or project structure, references, dependencies, building, testing ...
 anything! ... it's just a bottomless kludge of more tools made in
 JavaScript to try and make itself look and behave sensibly.

 I am now overwhelmed by despair at what damage JavaScript has done to
 software development in the 21st century. I know there are lots of younger
 developers out there who shrug and think what's so bad, it's working, but
 I think they're just used to suffering and take it for granted.

 *Greg*

 List of JavaScript Libraries
 https://en.wikipedia.org/wiki/List_of_JavaScript_libraries




Re: Visual Studio C/C++ projects

2015-01-05 Thread Greg Harris
Some (many) years ago I was talking to this guy who was proudly telling me
he had upgraded his Pascal program to use the OO features of Delphi.
Great, tell me what features you are using I ask (expecting classes and
inheritance at least)
Answer: Oh the Delphi style // comments - Yeah - I had to bite my tongue!
Not being a C++ guy I can not tell you when the // style comment came in
for C based languages :-)
Happy New Year Everyone!

On Mon, Jan 5, 2015 at 7:05 PM, DotNet Dude adotnetd...@gmail.com wrote:

 Try adding some C++ features and see what happens when you try to compile.


 On Mon, Jan 5, 2015 at 5:31 PM, DotNet Dude adotnetd...@gmail.com wrote:

 I think /TC tells VS it's C only? /TP is for C++.


 On Mon, Jan 5, 2015 at 11:44 AM, Greg Keogh g...@mira.net wrote:

 I found the easiest way of making a plain C project (I hope) is to
 create a new C++ Empty Project, add a .c file then after some searching I
 found:

 Configuration Properties  C/C++  Advanced  Compile As

 Which sets the /TP or /TC compile option. I'm still suspicious that this
 hasn't disabled all the C++ features though.

 *Greg K*

 On 5 January 2015 at 10:47, Greg Keogh g...@mira.net wrote:

 Folks, I might have to migrate some Embarcadero/Borland C (not C++)
 code over to Visual Studio, but I haven't written any C/C++ for about 10
 years now (thankfully). The C code mostly manipulates flat files and
 performs heavy stats calculations, so there are no serious platform
 dependencies to make conversion difficult.

 The trouble is, I've forgotten how to make a VS2013 C (not C++)
 project, if such a thing is meaningful. I'm not even sure if the C language
 exists any more!! Do I have to flip some compiler options, or will the '.c'
 file suffix be recognised and prevent me from using any C++ headers or
 features?

 It's a weird question, but C/C++ and projects and tools have changed so
 much in the last decade that I'm disoriented.

 *Greg K*







Re: [OT] Unbelievable ad tracking

2014-12-22 Thread Greg Harris
because they know everything about you but their computer system are so
@#$%^* that they can not help any of their staff to do their job!
(does this feel like Friday?)

On Mon, Dec 22, 2014 at 7:49 PM, Stephen Price step...@perthprojects.com
wrote:

 So how come when I ring up the ATO they don't know who I am? ;)

 On Mon, Dec 22, 2014 at 2:54 PM, Greg Keogh g...@mira.net wrote:

 You can lodge a BAS with the ATO using it. (You can’t with IE 11)…


 That means that Google and the NSA now have full access to our tax
 records ;-)




Re: Duplicate matching

2014-11-28 Thread Greg Harris
Hi Greg,

Please find following what I have used in the past.
It is very expensive, but I can not see a better way of doing it.
It returns an integer which is the sum of:

   - number of times the same letter appears in both strings
   - 10 times the number of times the same two letters appears in both
   strings
   - 100 times the number of times the same three letters appears in both
   strings

Once you get your results, sort them, the most similar strings will have
higher results.
I used this many years ago and not used it since.
There may be (far) better ways to do this.

Regards
Greg Harris

public static string   CleanStr   ( this string aText )

{

  int   diff   = 'A' - 'a';

  StringBuilder result = new StringBuilder();

  foreach ( char ch in aText )

  {

if (( ch = '0'  ch = '9' )

 || ( ch = 'A'  ch = 'Z' ) )

{

  result.Append(ch);

}

else

{

  if ( ch = 'a'  ch = 'z' )

  {

result.Append((char)(ch+diff));

  }



}

  }

  return result.ToString();

}

/// summary

/// Do a sounds like compare, the higher the result, the more the
words/phrases sound the same

/// /summary

/// param name=aStr1First word / phrase/param

/// param name=aStr2Second word / phrase/param

/// returnsScore/returns

public static double   CompareSoundsLike ( this string aStr1, string
aStr2 )

{

  aStr1 = aStr1.CleanStr();

  aStr2 = aStr2.CleanStr();

  double result = 0;

  for (int i = 0; i  aStr1.Length; i++)

  {

char outerChar = aStr1[i];

for (int j = 0; j  aStr2.Length; j++)

{

  char innerInner = aStr2[j];

  if ( outerChar == innerInner )

  {

result++;

if ( ( i  aStr1.Length-1 )  ( j  aStr2.Length-1 )  (
aStr1[i+1] == aStr2[j+1] ) ) result += 10 ;

if ( ( i  aStr1.Length-2 )  ( j  aStr2.Length-2 )  (
aStr1[i+2] == aStr2[j+2] ) ) result += 100;

  }

}

  }

  return result / ( aStr1.Length + aStr2.Length );

}







[TestMethod] public void Test_10_Compare1()

{

  //   123456

  string lTestLine1 = qwerty;

  string lTestLine2 = QWERTY;

  double lExpected  = 456/(6+6);

  double lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );

}

[TestMethod] public void Test_10_Compare2()

{

  //   123456789-123456789-123456789-123456789-12xxx

  string lTestLine1 = The quick brown fox jumped over the !@#$
dog!;

  string lTestLine2 = T H E  -  Q U I C K  -  B R O W N  -  F O X
-  J U M P E D  -  O V E R  -  T H E  -  D O G;

  double lExpected  = 3856.0/(32.0 + 32.0);

  double lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );

}




On Sat, Nov 29, 2014 at 9:46 AM, Greg Keogh g...@mira.net wrote:

 Folks, I was about this write some utility code to search through my
 20,000 audio files looking for probable duplicates. I say probable
 because I found file names like these:

 Lovelock - Trumpet Concerto (SSO Concert).mp3
 Trumpet Concerto (William Lovelock).mp3

 There are many other duplicates with rearranged, abbreviated or misspelt
 words in the names. I was about to click New Project and start typing but
 I suddenly realised I had no idea what algorithm to use to find probable
 duplicates and rate them. Has anyone done this sort of thing before or know
 where to find a description of a suitable algorithm?

 *Greg K*



Re: [OT] Turning off outgoing mail possible?

2014-11-28 Thread Greg Harris
Hi Bec,


Email uses a store and forward approach, the computer wanting to send the
email stores the email until it can see another computer that it forwards
it to that is closer to the recipient, when it will forward the email to
the next computer, which will start the process over again.  This is
repeated until the mail gets through.


I am sure there is a way to look at the email headers to see the number of
these hops the mail has made to get from user A to user B.  But it could be
quite a few.


All you need is one of those computers to lose the email (should be a rare
occurrence), or go off line during the store phase and you have a lost or
delayed email.


With the number of hops that the email has to go through, there are going
to be multiple different OS’s and mail programs that will be touching the
email, each of which may have different processes.

This is a classic case of if any of them go wrong, the mail will not get
through!  99.9% plus of the time it works great, but you have to allow for
the possibility that one of the machines between user A and user B ate the
email.


If an email is important, you should copy it to a third party, so that you
can ask that third party, did you get it to prove that it was sent and/or
follow up the email with a direct call to the recipient to make sure it was
received, read and understood!


The answer to your question “Is it possible to achieve this by tampering
with the mail server settings or some other way?” I would be about 99% sure
it is, but if you brought in the forensic IT guys, I am sure that they
could find some form of audit trail to show the manipulation of the system.


Regards Greg

On Sat, Nov 29, 2014 at 10:31 AM, ILT (O) il.tho...@outlook.com wrote:

 Bec - have you looked at the (prior) email headers from this person? That
 will tell you what email client is normally used, and some other
 intermediate server information.

 I have just tested this, and It’s possible for (for example) using Outlook
 desktop versions to copy or move items to and from the Sent Items folder.

 Without looking at the sender’s emailer, and forensically examining the
 headers - Sent, Received, Created dates (etc) - you’re not going to win an
 argument though, I reckon.
 --

 Ian Thomas
 Albert Park, Victoria



 *From:* ozdotnet-boun...@ozdotnet.com [mailto:
 ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Bec Carter
 *Sent:* Saturday, November 29, 2014 9:57 AM
 *To:* ozDotNet
 *Subject:* Re: [OT] Turning off outgoing mail possible?



 Haha thanks guys but this case is quite suspicious. It was sent over two
 weeks ago and it just happens the most important email is the only one
 which didn't arrive. All others arrived. I'm not buying it. :-) Is it
 possible to achieve this by tampering with the mail server settings or some
 other way?



 Noonie- I've not been able to replicate this by dragging into the sent
 folder in gmail. Perhaps Outlook will do it but that would be quite dodgy.



 Cheers





 On Sat, Nov 29, 2014 at 2:15 AM, Stephen Price step...@perthprojects.com
 wrote:

 I always marvel at how people use email for business. As if it were
 guaranteed delivery. The technology has been around longer than the
 internet and I'd not be surprised if its not been changed in all that time.
 I'd like to hope it has but not looked into it. Might put that on my
 weekend reading list. Right after a few marvel comics. :)

 On Nov 28, 2014 4:12 PM, noonie neale.n...@gmail.com wrote:

 Bec,

 The mail client might let you drag an email into sent items.

 Email is not guaranteed to be delivered. That's not part of the spec
 (though you might be able to interpret it that way).

 So they could have sent it and you still might receive it next week, or
 never...

 Isn't that just peachy?

 --
 Regards,
 noonie

 On 28/11/2014 5:17 pm, Bec Carter bec.usern...@gmail.com wrote:

 Sorry everyone but this one is way way off topic.



 Someone claims to have sent me an email. I never received it- yes I
 checked the Junk folder :-)

 They've shown me their mailbox and its sitting in the Sent folder.



 Can someone with control of their web domain send an email, have it pop
 into the Sent items folder but not actually send? Say by somehow turning
 off (or providing a faulty) outgoing mail server setting or similar?



 Cheers





Re: Duplicate matching

2014-11-28 Thread Greg Harris
Hi Greg,


I should look at my code before I write comments from memory...

The result is a *double *value being the sum of:

· number of times the same letter appears in both strings

· 10 times the number of times the same two letters appears in both
strings

· 100 times the number of times the same three letters appears in
both strings

*Which is then divided by the length of the two strings to sort of
“normalise” the result.*

Mixed case is ignored, only compares letters A-Z and 0-9, everything else
is excluded.

I added a Greg unit test to better show the results which is following…


Regards

Greg Harris



[TestMethod] public void Test_10_Compare3_ForGregKeogh()

{

  //   123456789-123456789-123456789-123456789-12456

  string lTestLine1 = Lovelock - Trumpet Concerto (SSO
Concert).mp3;

  string lTestLine2 = Trumpet Concerto (William Lovelock).mp3;

  double lExpected  = 3033/(36.0 + 33.0); // = 43.9

  double lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );



  // This is an example of exactly the same string, so will get the
best posible match

  lTestLine1 = Lovelock - Trumpet Concerto (SSO Concert).mp3;

  lTestLine2 = Lovelock - Trumpet Concerto (SSO Concert).mp3;

  lExpected  = 5256/(36.0 + 36.0); // = 73.0

  lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );



  // This is an example of exactly the same string, with case
difference, which is ignored,

  // so will also get the best possible match

  lTestLine1 = Lovelock - Trumpet Concerto (SSO Concert).mp3;

  lTestLine2 = LOVELOCK - TRUMPET CONCERTO (SSO CONCERT).mp3;

  lExpected  = 5256/(36.0 + 36.0); // = 73.0

  lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );



  // This is an example of a spelling/typing mistake, so will get a
very good match

  lTestLine1 = Lovelock - Trumpet Concerto (SSO Concert).mp3;

  lTestLine2 = Lovelock - Trumpet Concerto (SoSo Concert).mp3;

  lExpected  = 5272/(36.0 + 37.0); // = 72.2

  lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );



  // This is an example of a truncation, so will get a poor match

  lTestLine1 = Lovelock - Trumpet Concerto (SSO Concert).mp3;

  lTestLine2 = Lovelock - Trumpet Concerto.mp3;

  lExpected  = 3237/(36.0 + 26.0); // = 52.2

  lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );



  // This will get a match on William and a little else...

  lTestLine1 = Trumpet Concerto (William Lovelock).mp3;

  lTestLine2 = The Complete Works of William Shakespeare.txt;

  lExpected  = 1202/(33.0 + 39.0); // = 16.69

  lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );



  // This will get a match on each of the letters, but no double letters

  lTestLine1 = QWERTY;

  lTestLine2 = ytrewq;

  lExpected  = 6/(6.0 + 6.0); // = 0.5

  lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );



  // This will get a match on nothing

  lTestLine1 = QWERTY;

  lTestLine2 = ASDFGHJKL;

  lExpected  = 0/(6.0 + 9.0); // = 0.0

  lResult= lTestLine1.CompareSoundsLike( lTestLine2 );

  Assert.AreEqualdouble( lExpected, lResult );

}



On Sat, Nov 29, 2014 at 10:16 AM, Greg Harris 
g...@harrisconsultinggroup.com wrote:

 Hi Greg,

 Please find following what I have used in the past.
 It is very expensive, but I can not see a better way of doing it.
 It returns an integer which is the sum of:

- number of times the same letter appears in both strings
- 10 times the number of times the same two letters appears in both
strings
- 100 times the number of times the same three letters appears in both
strings

 Once you get your results, sort them, the most similar strings will have
 higher results.
 I used this many years ago and not used it since.
 There may be (far) better ways to do this.

 Regards
 Greg Harris

 public static string   CleanStr   ( this string aText )

 {

   int   diff   = 'A' - 'a';

   StringBuilder result = new StringBuilder();

   foreach ( char ch in aText )

   {

 if (( ch = '0'  ch = '9' )

  || ( ch = 'A'  ch = 'Z' ) )

 {

   result.Append(ch);

 }

 else

 {

   if ( ch = 'a'  ch = 'z' )

   {

 result.Append((char)(ch+diff

Re: [OT] Quiet

2014-09-18 Thread Greg Harris
Hi All,



Warning long Friday rant to follow…



In summary the rumours of the demise of C#/.Net are very premature, but
keep an eye on the patient, health may be slowly declining.



RANT

When I was first at Uni (79-81) the business programming subject taught us
COBOL along with a few home truths about COBOL such as:

1)  COBOL is the single most popular language by a large margin.

2)  There are now better languages available, so COBOL will soon start
reducing its market share.

3)  This will take some time because of the huge investment in existing
COBOL programs.

4)  Do not expect many new projects to start that use COBOL in the next
few years.



In 20/20 vision hindsight, it is interesting to review this:



Point 1: Correct.



Point 2: The languages that were going to replace COBOL were
Pascal/Modular, ADA, or maybe C (but just for highly technical low level
code).  Today, the only one of those languages to have any remaining
traction is C.

Analysis: The other languages ready to replace COBOL were not yet ready.



Point 3: Correct, but it took a lot longer than expected.



Point 4: Where (in my experience) it was probably about 1993, a full ten
years later where COBOL stopped being used in new projects.  This was
because there were a lot of shops that had a large COBOL library and COBOL
team, so the new projects took leverage off that base.

Analysis: The installed base created a huge inertia and slowed the process
down by at least 10 years.



Today, if you look at what languages are most popular, there is no one
language to lead them all like there was back in the 1970’s / 80’s,
depending on the site you look at, the top few will include Java, PHP,
C/C++/Objective-C, C#, VB/Basic/VB.Net, Python, Javascript, Ruby.  The
difference today is there is no clear single leader.

Looking at
https://sites.google.com/site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language

1)  Python is the language most in ascendancy.

2)  Perl, Basic and C++ look to all be in clear decline.

3)  Java is the head of the pack, staying consistently at the top, but
not by a large margin.

4)  It is hard to read the graph, but it looks like C# continues on
reasonable growth.

5)  But C# has just lost position 3 to Python.



So what is my analysis of the future of C#/.Net?

1)  The large volume of C#/.Net developers and code library will
provide a large inertia, but nowhere near as large as what COBOL had.

2)  C# is one of many C/Java derivative languages, the cost of porting
your program/skills from C# to another language is a lot less than the cost
of porting programs/skills from COBOL.

3)  COBOL was owned by the community, C#/.Net is owned by Microsoft, so
C#/.Net is at the mercy of Microsoft’s wisdom (or lack of it).

4)  Microsoft has shown a colossal lack of management skill when you
look at the complete train wreck that was the mismanagement of Silverlight!

5)  Microsoft is a large legacy company, even with poor management, it
will not go away any day soon (look at the reducing dominance of IBM for a
similar example of durability).

6)  It is too early to say if Satya Nadella (new MS CEO) is going to
make changes that will support the future of C#/.Net, but we can be sure
that his primary focus will be the wellbeing of the company not the
wellbeing of C#/.Net programmers!

7)  Microsoft is closing its Research lab in Silicon Valley (
http://www.zdnet.com/microsoft-to-close-microsoft-research-lab-in-silicon-valley-733838/)
they are clearly making bold management decisions, some of these bold
decisions will affect the future of C#/.Net but it is too early to see how.

Conclusion, if Microsoft do nothing to help C#/.Net it has only another 5
years life, but Microsoft are not going to do that as they too have a huge
investment in C#/.Net which should give it at least another 5 years life.
Anyone trying to look forward more than 5 years in this industry is being
optimistic at best!  So I would say that C#/.Net has a good prognosis for
the foreseeable future, but keep an eye out for the unexpected, which could
be positive or negative.

/RANT



Regards

Greg Harris

On Fri, Sep 19, 2014 at 10:30 AM, David Connors da...@connors.com wrote:

 On Fri, Sep 19, 2014 at 10:01 AM, Bec Carter bec.usern...@gmail.com
 wrote:

 Just the other day a friend of mine mentioned how at a meeting with the
 big guns at her office they were referring to C# as legacy. Am I now the
 new VB6 equivalent? N. Help.


 Probably a fair call. .NET has just been tinkered with for the better part
 of a decade.

 It is impossible to make sense out of Microsoft's client platform strategy
 any more ... and with the move to cloud they probably don't care anyway.

 David.



Re: azure in Australia

2014-08-10 Thread Greg Harris
The rumour mill has been saying about 2-3 months away for the last 12
months, I would like to see a firm announcement from MS on this!
Some of my clients point blank refuse to host off shore.
But I do not know if it will make much difference after:
http://www.zdnet.com/microsoft-ordered-to-hand-over-overseas-email-throwing-eu-privacy-rights-in-the-fire-732210/
Microsoft ordered to hand over overseas email, throwing EU privacy rights
in the fire


On Mon, Aug 11, 2014 at 1:31 PM, Craig van Nieuwkerk crai...@gmail.com
wrote:

 Coming soon, but details are sketchy. Best estimates are there will be a
 data center in both Melbourne and Sydney and hopefully available by the end
 of the year.


 On Mon, Aug 11, 2014 at 1:27 PM, anthonyatsmall...@mail.com wrote:

 Anyone know if azure hosting have a presence in Australia?



 I am new to Azure,   if I want to setup a website with full redundancy,
 what service in azure do I need?  It needs to scale on demand.



 Any help would be awesome!





 Anthony Salerno | Founder | SmallBiz Australia
 Innovation | Web | Software | M2M | Developers | Support
 +613 8400 4191 | 2Anthony (at) smallbiz.com.au  | Po Box 135, Lower
 Plenty 3093 ABN : 16 079 706 737

 www.smallbiz.com.au | www.linkedin.com/in/innovativetechnology











Re: [OT] Samsung U28D590D 4K Monitor

2014-06-19 Thread Greg Harris
Hi All,


I have had the new monitor (Samsung U28D590DS 28 UltraHD) out of the box
and plugged it in for a week.


I was just about ready to take it back to the store as it was not working,
but then I found the single black on black “JOG Button” on the back of the
right hand side of the monitor and played around with it and she worked!


On my not so old laptop I only get to see 3.7M pixels (2560 X 1440) out of
the 8.3M (3840 X 2160) available pixels because that is all the graphics
card will drive on this machine.


I am thinking that I may get a new graphics card for my desktop machine,
just to get the extra pixels.  I am not sure if it is wise to replace the
graphics card in the laptop???  Dell's reply to my a request for an upgrade
to my Precision M6500 to support the monitor is: “Unfortunately the video
card on a portable cannot be upgraded after the point of sale”.


I have had one morning where the monitor did not wake up with the other
monitors which is a bit of a concern, a power reset fixed that.


A few thoughts:

· This is a good monitor but it could be much better with a better
graphics card.

· You have no option but to run this monitor in landscape mode in a
fixed location on your desk as there are no options to wall mount it and
the stand is fixed and non-adjustable!

· If you want height adjustment, put it on a big book! (stand is
about 35cm long)

· I like that the power supply is a small external brick so I only
have a small cable up to my desk (and the brick runs quite cool)


Overall, am I happy with the purchase? YES


I am also using this with a Toshiba dynadock® U3.0 Universal USB 3.0
Docking Station (
http://www.toshiba.com/us/accessories/Docking-and-Stands/Port-Replicators/Docking-Station/PA3927U-1PRP)
which gives me another two external HD monitors which is starting to get up
towards a reasonable amount of screen space.


Regards

Greg Harris


On Fri, Jun 13, 2014 at 5:29 PM, Greg Keogh g...@mira.net wrote:

 How do people find the font sizes for programming/web surfing with such a
 high-resolution? I know you can make the editor fonts bigger, but what
 about menus/etc? How does Visual Studio look?


 After getting my Dell I think I posted in here to remind people how
 important it is to write apps that can zoom to suit your distance,
 resolution and how tired your eyes are. I found some of my own desktop apps
 looked like little ant farms on the Dell. Right then I decided that all
 XAML based apps that I write would have at some zooming ability for all
 major parts of the UI (and I have kept my promise). I usually put a small
 slider at the bottom left of grids, dialogs, etc and bind FontSize to it,
 so with one line you get free zooming.

 All the major apps I use can (mostly) zoom, Visual Studio, IE, Office
 apps, Notepad2, etc. I say mostly because many menus, toolbars, trees,
 etc within these apps don't zoom. So the experience is inconsistent in
 Windows and these apps, but it's just enough to satisfy me and I find I'm
 using the Ctrl+Wheel unconsciously all day, especially in VS2013 on the
 Dell.

 *Greg K*



Re: [OT] Samsung U28D590D 4K Monitor

2014-06-11 Thread Greg Harris
DSE has them in stock for $699 (
http://www.dicksmith.com.au/computer-monitors/samsung-28-uhd590-monitor-dsau-xc9312
)
Just got one off JW.com.au (
http://www.jw.com.au/samsung-u28d590ds-28-ultrahd-1ms-4k-monitor-p-54326)
who did a price match
My laptop will not drive the full resolution, but it is worthwhile anyway...


On Thu, Jun 12, 2014 at 10:38 AM, Stephen Price step...@perthprojects.com
wrote:

 Just an update on this new Samsung 4k monitor (U28D590D), I used it in
 2560x1440 for a while due to the fonts looking blurry and not being used to
 the small fonts. Few days ago, I tried it back in its native res and
 started getting used to it. I usually RDP to my laptop and spend most of my
 time there (which is where I was getting blurryness in Visual Studio).
 While RDP'ing to another laptop, I suddenly realised the fonts were crisp.
 That machine was on ethernet not wifi, comparing them side by side, the
 laptop on wifi was definitely blurry in comparison. Turned on the setting
 to force it to think it was on a LAN connection and reconnected. It's now
 crisp like the other machine.

 A lot happier now. (if somewhat sheepish it took me so long to twig what
 was going on). :)


 On Wed, May 28, 2014 at 12:39 PM, Stephen Price step...@perthprojects.com
  wrote:

 Or... buy two monitors!


 On Wed, May 28, 2014 at 12:04 PM, Greg Keogh g...@mira.net wrote:

 It should easily pay for itself in its life span, as well as make you a
 happier developer, adding years to your life span and potential lifetime
 earnings. I say it's a bad business decision to NOT get it.


 Then the only answer is to buy one and use it in Hawaii -- *Greg*






Re: [OT] Earthquake?

2014-04-23 Thread Greg Harris
Sorry to hear that you have concentrated bugs

Sent from Greg's electronic thing

 Greg Keogh g...@mira.net wrote: 

No one here felt anything - East Hawthorn.

Yeah, no search results yet for a tremor here, so it must have been a mighty 
wind gust that I can't remember or didn't notice due to my concentrated bug 
hunting.

Speaking of nature's wonders ... a partial solar eclipse here next Tuesday at 
5pm and sun sets half an hour later, so we're at the mercy of the weather. The 
Lunar eclipse last week was spectacular. I'm still waiting for the most 
incredible eclipse of all, the one where the Sun goes between the Earth and the 
Moon.

Greg K


Data validation on a business object done by a rules engine - looking for a SIMPLE rules engine

2014-04-08 Thread Greg Harris
Hi Everybody,

I am looking for a tool to help with a customer's proposed new system, they
are looking to build a mediation system to go in between:
* A public facing web site that gets new customers for them and their
* Large slow customer management system.

The web page that they are using has about 25 data entry text boxes on the
page.  At this stage there is minimal data validation on this web page
which is what they want, as they do not want to scare away prospective new
customers.

Then they manually re-enter all of the data into their large slow customer
management system and correct fields as needed to meet the complex
validation rules on that system.

This is a long slow process that they want to automate.

I have suggested that we build them a MVC web application that imports the
data from the existing public facing web site, puts it into an object and
run a validate method on that object which will tell them all of the
problems without needing to use their large slow customer management system
until we are sure we have the data right.

We could use MVC Data Annotations for validation on the business object,
probably with some custom validation attributes to meet their specific
needs.  But I feel that there has to be some better options that will allow
my client to edit the validation rules in (semi) real time without doing a
recompile.

I do not want anything too complex, this is just a quick solution to solve
a problem for 5-10 users.

I am looking for your suggestions of a simple rules engine (or similar)
that I can use to help with this situation, that would only enable the post
to the large slow customer management system once all of the validations
have been completed.

Or would we be better off just writing the validation method in C# and
doing a quick recompile?

Many Thanks
Greg Harris


Re: [OT] Noise cancelling earphones for a quiet programmingenvironment?

2014-03-22 Thread Greg Harris
Sorry I do not think I am going to be a lot of help here...


Recommendation: The best thing to do is to get out of the open office
environment, I find that I am greatly affected by background distractions.
I have had five fold productivity increases when working from home or in
some other comfortable place away from the mad office.


If that fails, I have used Bose QuietComfort(R) 15 Acoustic Noise
Cancelling(R) headphones (
http://worldwide.bose.com/axa/en_au/web/quietcomfort_15/page.html) which
are great at cancelling out the background road sounds on the bus, but
pretty useless at the higher frequency office sounds.  See
http://en.wikipedia.org/wiki/Talk:Noise-cancelling_headphones#Real-world_performance_of_noise-cancelling_headphonesfor
a discussion on this.


The best solution is that everyone has a work cubical with a lot of sound
deadening material and meetings happen in meeting rooms, not at desks.


On Sun, Mar 23, 2014 at 2:26 PM, Kirsten Greed kirst...@jobtalk.com.auwrote:

  ah, I will take the tech tips on that too :-)


  --
  *From:* ozdotnet-boun...@ozdotnet.com [mailto:
 ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Stephen Price
 *Sent:* Sunday, 23 March 2014 2:00 PM
 *To:* ozDotNet
 *Subject:* RE: [OT] Noise cancelling earphones for a quiet
 programmingenvironment?

  Or get them a quiet mouse...
  --
 From: Kirsten Greed kirst...@jobtalk.com.au
 Sent: 23/03/2014 10:23 AM
 To: 'ozDotNet' ozdotnet@ozdotnet.com
 Subject: [OT] Noise cancelling earphones for a quiet programming
 environment?

 Hi All
 So that I can concentrate better, I am trying to filter out the mouse
 clicking sound from person at the desk next to me.
 Has anyone any tech recommendations on how to do this?
 Thanks
 Kirsten


 __ Information from ESET NOD32 Antivirus, version of virus
 signature database 9577 (20140322) __

 The message was checked by ESET NOD32 Antivirus.

 http://www.eset.com



Re: Migrating TFS

2014-02-12 Thread Greg Harris
+1 for I'd like to see those graphs also if you are happy to group it ..


On Thu, Feb 13, 2014 at 12:05 PM, Paul Evrat p...@paulevrat.com wrote:


 I'd like to see those graphs also if you are happy to group it ..




  Original message 
 From: Greg Keogh g...@mira.net
 Date:
 To: ozDotNet ozdotnet@ozdotnet.com
 Subject: Re: Migrating TFS


  As for the graphs - I'm using the Kendo (which is Telerik) graphs and
 data visualisation tools. They're ok, and there are a couple of annoyances,
 like with any graph generator, but they're pretty good.


 Tony, I'm really curious to see how graphs come out in HTML and
 JavaScript via Kendo, is it possible to see a sample? Contact me off-list 
 g...@mira.net if it's okay -- Greg




Re: Migrating TFS

2014-02-11 Thread Greg Harris
I do not think this was directed at me but here goes...


Start rant


@#$%^ing Microsoft has #$%^ed me and the community on Silverlight, I spent
a few years 100% focused on Silverlight at a significant cost in time and
money, all now just wasted!


Today, I have a client that would 100% fit a Silverlight solution for their
line of business (LOB) application, but they are not willing to take on
Silverlight because of Microsoft's end of life perspective on the tool.


I would agree that it may not be the right cross platform tool for all
mobile devices, but I see no reason why MS cannot make a commitment to
future releases and ongoing support on Windows, Mac, Windows Phone and
Android.


I would not do the next version of Angry Birds with Silverlight, but I
would do most LOB apps with Silverlight.


Microsoft, you have made me angry, you have made my client's angry, you
have lost credibility, I do not trust you!  Probably more fool me for ever
trusting you!


Microsoft, you could start to gain some credibility back by restoring
Silverlight to its rightful place as the tool of choice for client side
development in LOB apps with a commitment to maintain and support it for 20
years into the future.


End rant


Regards

Greg Harris


On Wed, Feb 12, 2014 at 5:48 PM, Greg Keogh g...@mira.net wrote:

 Greg? Where are you?
 This is your cue.


 Ah! What! I'm awake ... I saw Silverlight mentioned as dead and
 abandoned. Guess what I've been doing all day today .. expanding a large
 Silverlight 5 app. We have no alternative, we've spent years developing the
 app and it's in use by some gigantic companies internationally.

 What the hell else can we do? Seriously! Discussion here last year pointed
 out that HTML5 is the only alternative to delivering rich apps on the
 browser desktop, but it groans under stress and I was warned that it just
 can't show attractive interactive charts of the type available with the
 ComponentOne SL libraries.

 Also, I have subscribed to MSDN Magazine (MSJ as it was) since 1993 and I
 agree that it is generally uninteresting these days because it's mostly
 about JavaScript, Stores, Azure, Windows RT and Windows 8 (the latest
 groovy stuff you're talking about). I find I flip through new issues and
 chuck them aside. I like academic articles, but Petzold's and McCaffrey's
 articles are so abstract they're in the twilight zone.

 My day to day development experience is consistently as infuriating and
 unpredictable as ever. Projects won't build, IIS goes haywire with code
 500s, versions clash, dependencies are all over the shop, kits don't work,
 samples are simplistic, designers crash, I'm coding XAML UIs by hand, I
 have to learn WiX, I have to run VS2013 and VS2012 side by side due to COM
 problems, my VS2013 is diseased, and so on. I get up in the morning and the
 things that worked the night before are all on the fritz. Sometimes I miss
 punch cards.

 However, I don't want to fuel the jovial atmosphere of impending doom that
 pervades this forum ;-)

 Greg



Re: Today was very quiet on ozdotnet ...

2014-02-06 Thread Greg Harris
Well the Nasdaq was down 0.5%, MS down 1.5%...
It could have been a lot worse!
[image: Inline image 2]

[image: Inline image 1]
[image: Inline image 3]



On Thu, Feb 6, 2014 at 9:00 PM, Ken Schaefer k...@adopenstatic.com wrote:

  Regardless of its technical merits, it's destroyed a metric bucketload
 of shareholder value.



 Cheers

 Ken



 *From:* ozdotnet-boun...@ozdotnet.com [mailto:
 ozdotnet-boun...@ozdotnet.com] *On Behalf Of *ILT (O)
 *Sent:* Thursday, 6 February 2014 8:54 PM
 *To:* 'ozDotNet'
 *Subject:* RE: Today was very quiet on ozdotnet ...



 David, actually I don't mind Bing. What aggravates you about it - browser
 and desktop?

 Google morphs every month or week which upsets my conventionalism, and I
 just can't get the hang of Google browser on iPad (well, many things on
 that platform confuse me).
  --

 Ian Thomas
 Victoria Park, Western Australia

 *From:* ozdotnet-boun...@ozdotnet.com [
 mailto:ozdotnet-boun...@ozdotnet.com ozdotnet-boun...@ozdotnet.com] *On
 Behalf Of *David Connors
 *Sent:* Thursday, February 06, 2014 8:38 AM
 *To:* ozDotNet
 *Subject:* Re: Today was very quiet on ozdotnet ...



 On Thu, Feb 6, 2014 at 10:07 AM, ILT (O) il.tho...@outlook.com wrote:

 As I read it, Nadella's roles over the past few years have been achieving
 exactly that. To use the acronyms - PaaS, IaaS and SaaS.



 And Bing - but no one is perfect.


   David Connors
 da...@connors.com | M +61 417 189 363
 Download my v-card: https://www.codify.com/cards/davidconnors
 Follow me on Twitter: https://www.twitter.com/davidconnors
 Connect with me on LinkedIn: http://au.linkedin.com/in/davidjohnconnors





image.pngimage.pngimage.png

Re: [OT] Taking iiNet to TIO

2013-12-17 Thread Greg Harris
I am pleased to hear that the TIO has some teeth now.

In the mid 1990's I worked for one of the many telco resellers (long since
merged into a bigger telco reseller several times).
They had a way of dealing with notices from the Ombudsman, they were
stacked in the corner of an office.
When the stack was too high, they started another stack.
There would have been many thousands of pages in those stacks.
My understanding was no one ever did anything about the stack.



On Wed, Dec 18, 2013 at 10:45 AM, Nathan Chere
nathan.ch...@saiglobal.comwrote:

  A level 1 complaint costs them about $35. If the matter can’t be
 resolved and is escalated, it then costs the defendant around $350  – a
 mandatory cost as part of being a TIO member. If the contract cancellation
 fee is anything less than $350, it makes more sense for them to waive the
 fee than let it escalate. If they still want to be dicks about it, the
 costs escalate rapidly from there – around $600 for a level 3 complaint and
 $2,500 for a level 4 complaint.



 In a nut shell, as soon as the TIO is involved it is in their best
 interest to pull their heads out of their asses and address your complaints
 properly instead of trying to bury it under ‘process’.



 *From:* ozdotnet-boun...@ozdotnet.com [mailto:
 ozdotnet-boun...@ozdotnet.com] *On Behalf Of *David Connors
 *Sent:* Wednesday, 18 December 2013 10:20 AM
 *To:* ozDotNet
 *Subject:* Re: [OT] Taking iiNet to TIO



 On 17 December 2013 21:44, Girish Madan girishma...@gmail.com wrote:

Just wanted to ask if anyone had any experience in making a complaint
 against iiNet to TIO.



 I signed up on a 24 months Phone, ADSL and TV Combo at the start of this
 year. After 10 months of over charging my credit card, faulty hardware and
 extremely poor customer service, i've had enough and want to cancel the
 contract.

 Unsurprisingly, they want me to pay to cancel the contract even though
 i've already been paying for the service that didn't work for a while.



 I've done a TIO against Telstra around some phone number porting. You will
 find iiNet become suddenly *very* responsive when you file the TIO
 complaint - as soon as I filed the complaint I had a case manager in
 Telstra's internal special TIO response group who resolved it in 24 hrs.
 The carriers are graded by numbers of complaints and levied accordingly.
 They take it very seriously.



 David.



 Click here https://www.mailcontrol.com/sr/MZbqvYs5QwJvpeaetUwhCQ== to
 report this email as spam.


 This message has been scanned for malware by Websense. www.websense.com



Re: [OT] Taking iiNet to TIO

2013-12-17 Thread Greg Harris
One of the things I did on a similar problem (with an electricity supplier)
was to request that all communications were in writing so I had a record.
Sorry Mr Harris, we can't do that
So the classic, can I talk to your manager and up a few layers, but still
would not do it.
So I asked to speak to the CEO, same Sorry Mr Harris, we can't do that
So I looked up the email address of the CEO, not found, but I found about
25 other email addresses of others in the company and sent this email:

Dear Recipient,


As I have not been able to find Person’s email address or a general
complaints email address on your public web site and the on-line web form
will not take this amount of text, I am forced into sending this email to
every email address I can find on your web site and guessing at a few
possible email addresses,.


Would you please forward this email to Person Chief Executive Officer.


Thank You.


Dear Person,


I am writing to you in frustration because I have not been able to resolve
a matter through your customer service channel and am asking for your
assistance to get this problem resolved.


Our situation is ...



Sent Sunday afternoon, response received that day, the quality of service
was still shit, but mildly better shit.

But at least I got all communications in writing from that point onwards.

And I learned that there is an Electricity Ombudsman as well, because the
department I was put through to was the one that deals with the Ombudsman.


I think that the situation with resellers is that they are pushing the
margins to the point that they can not afford to have a quality customer
service department / process in place any more.

So, we have to find ways to work around that.


Good Luck


On Wed, Dec 18, 2013 at 1:03 PM, Girish Madan girishma...@gmail.com wrote:

 There has been mutiple issues that went on ever since i signed up the
 contract.

 They chose to over charge for 10 months and ignore everything else until i
 used the word TIO :)

 Since then, the complaint went 3 levels up and i was offered compensation
 ($149.70) which i accepted and tried to move on. Unfortunately, another
 issue came up the same evening i accepted compensation. I called them up
 again and returned the Credit they gave me and said i'm finally going to
 TIO.

 I asked them to send me all the call records and notes they had on my
 account as i want to use them in my complaint to TIO. Then came another
 twist, they are finally sending their techii (free of cost) to resolve
 issues and replace faulty hardware. I guess this is their last chance to
 get their service working.

 In between using the word TIO for the first time and them agreed to send
 their techii, they have already taken more than 3 weeks and few hours on
 the phone (around 15 phone calls i guess).

 At the end of they day, for iiNet it is a matter of treating their
 customer with contempt and charging them as much as they can but for me it
 has become a matter of principle.

 In case anyone is interested, the actual fight is for $310 here. I'm not
 paying even a single dollar unless told by TIO that it was my mistake to
 sign up with iiNet.
  Let's see what their techii comes up...

 I'll keep eveyone posted on the progress...

 Thanks for your comments



 On Wed, Dec 18, 2013 at 12:22 PM, Scott Barnes scott.bar...@gmail.comwrote:

 I took iiNet to TIO due to my FTTH being basically slow. I knew at the
 end of the day the fault was with OptiComm but got sick of waiting a year
 for iiNet/OptiComm to fight it out on who's to blame. After i lodged the
 complaint, 4 days later my issue was not only resolved but my monthly quota
 was unlimited for that month AND my entire bill was credited I think around
 40% for the date the first fault was lodged (which was nearly a year @
 $150.00 - 40%)

 You're supposed to give them ample opportunity to resolve your fault and
 you inform them i'm now going to TIO and when that happens, they usually
 respond.


 ---
 Regards,
 Scott Barnes
 http://www.riagenic.com


 On Wed, Dec 18, 2013 at 11:15 AM, Greg Harris 
 g...@harrisconsultinggroup.com wrote:

 I am pleased to hear that the TIO has some teeth now.

 In the mid 1990's I worked for one of the many telco resellers (long
 since merged into a bigger telco reseller several times).
 They had a way of dealing with notices from the Ombudsman, they were
 stacked in the corner of an office.
 When the stack was too high, they started another stack.
 There would have been many thousands of pages in those stacks.
 My understanding was no one ever did anything about the stack.



 On Wed, Dec 18, 2013 at 10:45 AM, Nathan Chere 
 nathan.ch...@saiglobal.com wrote:

  A level 1 complaint costs them about $35. If the matter can’t be
 resolved and is escalated, it then costs the defendant around $350  – a
 mandatory cost as part of being a TIO member. If the contract cancellation
 fee is anything less than $350, it makes more sense for them to waive the
 fee than let

Virtual visual studio development machine – looking for some setup advice

2013-10-02 Thread Greg Harris
Hi People,

I am about to setup a new development machine for a new development project
and I was after some suggestions…

I want to be able to run multiple separate environments at the same time so
that I can test software in these environments and just trash the
environment as needed when done.  Also, the same idea sounds valid for my
visual studio development environment.  This would give me the advantage of
being able to wind back to a prior known, good stable environment as
needed.

This would also give some additional benefits:

   - Disaster recovery when on the road:  If I am seeing a client on the
   other side of the world and my laptop dies, I can go into the local store,
   buy a new machine and start up a VM on the machine and I have all of my
   environments back again at reduced stress.
   - Quickly move to new physical machine as needed to get additional
   resources.
   - Separate environment for each project.
   - Ability to build a VM and send it to the cloud for production use.

I am thinking that at any one time, I would be running VM’s for:

   - Stable stuff like office, file system and database
   - Development (Visual Studio)
   - Test environments (typically only one, but maybe more)

I realise that I am going to need to give the physical machine a LOT MORE
memory and disk (but disk is cheap, probably use an SSD, OK not cheap).
 The other resources should share well.

My guest VPC’s will all be some form of Windows OS (both 32 and 64 bit)
hosted on Win 7 Pro 64 bit.

The initial concerns I have are around the user interface

   - UI responsiveness, I have seen on some VPC’s the mouse jitter around
   and it be unclear where you are pointing, this can be very disconcerting.
   - I tend to use two or three monitors at a time, the VPC must support
   this.

I am thinking that I will keep as little as possible running on the host
OS, so that I (almost) never need to reboot it.

I have already found some useful references on the web:
http://stackoverflow.com/questions/633774/optimize-development-virtual-machine
http://www.andrewconnell.com/HOWTO-Squeeze-Every-Last-Drop-of-Performance-Out-of-Your-Virtual-PCs

Before I go and burn a lot of time on this, I wanted to review this with
the list…

Questions:

   - Do any of you do this?
   - Does it work well?
   - What should I lookout for?
   - What tools should I use?

I assume that the best options available for hosting my VM’s are one of:

   - VMWare http://www.vmware.com
   - Oracle Virtual Box http://www.virtualbox.org
   - MS Virtual PC
   http://www.microsoft.com/en-us/download/details.aspx?id=3702

MS Virtual PC is 2011, does that mean it is stable or they have moved on to
something else?

Thanks in advance for your help :-).

Regards
Greg Harris


Re: Mocking up a designer surface

2013-09-10 Thread Greg Harris
Hi Greg,

At this point I am working on a new app, it will have an HTML web site for
basic stuff and a downloadable win forms app for the intensive stuff, I
would much rather do it with SL but MS has so upset the SL story that it is
just not going to happen!

Regards
Greg H


On Tue, Sep 10, 2013 at 9:36 PM, Greg Keogh g...@mira.net wrote:


 To: Stephen Price step...@perthprojects.com

 Seriously dude, I'd be dropping Silverlight as fast as Microsoft did.
 Silverlight was great. I was one of it's biggest supporters and I'm still
 gobsmacked at how hard Microsoft have dropped it. but it's time to move on.
 No point in flogging a dead horse, as they say.


 Jeezuz! I know this topic has been floating around for a while now, but
 even I'm getting scared. After everything that's been said on this, the big
 practical question remains: how the hell does someone write a graphics
 intensive application that must be delivered over the web? Hints in here
 recently indicate that HTML5 just can't give the performance and richness,
 and I detest the idea of pushing controls and visuals around a screen using
 compressed JavaScript as the code-behind fake assembly language. That's not
 progress, it's a some kind of mad directionless mash-up.

 Are we in a dead end? We're about to launch a big product upgrade, still
 using Silverlight. We have had serious queries about mini versions of the
 app on tablets and phones (thread a couple of months ago), but despite that
 we have to keep the main desktop app going in the browser. What on earth is
 a viable alternative?!? WHAT?

 Can anyone convince me that Silverlight still has at least a few viable
 years left?

 Greg K



Re: Mocking up a designer surface

2013-09-10 Thread Greg Harris
Hi Greg,

Basic HTML will be simple CRUD table maintenance and reports.
Rich interaction, not in the initial plan.

Winforms - Yes at this stage that is what I am thinking, the app needs to
do some extensive custom graphics which at this stage I intend to build up
with GDI+ as it is what I have used before, but I am open to suggestions.

I may go with WPF but that is not the way I am thinking just now. As the
client wants to keep it cheap and fast.

I like to look at job trends to see where the industry is going and
WPF/Silverlight has not been happy for 2 years:
http://www.indeed.com/jobtrends?q=wpf%2Csilverlightl=silverlight

Regards
Greg (H)


On Tue, Sep 10, 2013 at 11:17 PM, Greg Keogh g...@mira.net wrote:

 At this point I am working on a new app, it will have an HTML web site for
 basic stuff and a downloadable win forms app for the intensive stuff, I
 would much rather do it with SL but MS has so upset the SL story that it is
 just not going to happen!


 Oh boy, another scary response. Will the html basic stuff have any kind
 of rich interaction? Also, you really mean WinForms and not WPF?

 Greg (K)



Re: [OT] Nokia sells smartphone business to Microsoft

2013-09-03 Thread Greg Harris
Nokia also makes a lot of the network cell sites and (telephone) exchange
stuff


On Wed, Sep 4, 2013 at 11:06 AM, David Kean david.k...@microsoft.comwrote:

   don't twit me about phones vs smartphones, noone buys dumbphones
 anymore.

 ** **

 Smart phones only overtook dumb phones for the first time this year and
 Nokia was still one of the largest manufacturer of them. They however, are
 seeing a rapid decline. However, they also come over to Microsoft.

 ** **

 This article gives a good overview of the buyout:
 http://www.digitaltrends.com/mobile/microsoft-nokia-buyout-details-7-things-to-know/
 .

 ** **

 *From:* ozdotnet-boun...@ozdotnet.com [mailto:
 ozdotnet-boun...@ozdotnet.com] *On Behalf Of *mike smith
 *Sent:* Tuesday, September 3, 2013 5:45 PM

 *To:* ozDotNet
 *Subject:* Re: [OT] Nokia sells smartphone business to Microsoft

 ** **

 On Tue, Sep 3, 2013 at 6:23 PM, osjasonrobe...@gmail.com wrote:

   It’s pretty amazing that 32,000 people will transfer from Nokia to
 Microsoft... Could be a great cross-pollination of ideas, marketing skills,
 etc.

  

 Wonder whether there will just be Microsoft Phone or whether they’ll keep
 (or be allowed to keep) the Lumia brand?

  ** **

 ** **

 Without phones, what does Nokia have?  (don't twit me about phones vs
 smartphones, noone buys dumbphones anymore.)

 ** **

 --
 Meski

  http://courteous.ly/aAOZcv


 Going to Starbucks for coffee is like going to prison for sex. Sure,
 you'll get it, but it's going to be rough - Adam Hills



Re: Future of .NET

2013-08-21 Thread Greg Harris
Microsoft are trying to fix the startup thing with Biz Spark (
http://www.microsoft.com/bizspark/)
But when they make super stuff ups like the non support of Silverlight you
do have ask what the @#$%^* they are doing !


On Thu, Aug 22, 2013 at 11:42 AM, Craig van Nieuwkerk crai...@gmail.comwrote:

 I don't think this will necessarily filter into the enterprise in a big.
 .NET and Java are both really strong in enterprise, as are Oracle and SQL
 Server but not that strong in startups. Enterprise and startups have
 different requirements.


 On Thu, Aug 22, 2013 at 11:37 AM, Michael Ridland rid...@gmail.comwrote:


 Does this eventually filter into enterprise and if so what does that mean
 for .NET?



 On Thu, Aug 22, 2013 at 11:35 AM, Michael Ridland rid...@gmail.comwrote:


 Python / Django / Rails.

 I think you would be hard press for find a .NET job on AngelList. Well
 actually I can see 53 companies out of 3916 that use asp.net.
 https://angel.co/ifttt/jobs

 I'm not bashing just noting my observations and wanted opinions?





 On Thu, Aug 22, 2013 at 11:14 AM, Rob Andrew 
 rand...@voyageconnect.comwrote:

 Michael,

 What is the development platform of choice for the cool kids you are
 seeing?

 Just wondering.

 Rob



 *- Original Message -*
 *From:* Michael Ridland [mailto:rid...@gmail.com]
 *To:* ozdotnet@ozdotnet.com
 *Sent:* Thu, 22 Aug 2013 10:38:49 +1000
 *Subject:* Future of .NET

 Hi

 It's clear that in the Start-up and Web communities the choice for
 development platforms is not .NET.

 Does this mean eventually this will filter up? I'm wondering what this
 means for the future of .NET?

 I once had a developer say .NET is the new COBOL.







Re: Future of .NET

2013-08-21 Thread Greg Harris
 language
 run-time, and MVC). Compiler as a Service also seems to have interesting
 possibilities. It's certainly not growing stale like COBOL. It's when I
 have to help out with Java projects (despite some good libraries), it feels
 like a time-warp back to .Net 2.0 days.


 On 22 August 2013 09:47, Greg Harris harris.gre...@gmail.com wrote:

 Microsoft are trying to fix the startup thing with Biz Spark (
 http://www.microsoft.com/bizspark/)
 But when they make super stuff ups like the non support of Silverlight
 you do have ask what the @#$%^* they are doing !


 On Thu, Aug 22, 2013 at 11:42 AM, Craig van Nieuwkerk crai...@gmail.com
  wrote:

 I don't think this will necessarily filter into the enterprise in a
 big. .NET and Java are both really strong in enterprise, as are Oracle and
 SQL Server but not that strong in startups. Enterprise and startups have
 different requirements.


 On Thu, Aug 22, 2013 at 11:37 AM, Michael Ridland rid...@gmail.comwrote:


 Does this eventually filter into enterprise and if so what does that
 mean for .NET?



 On Thu, Aug 22, 2013 at 11:35 AM, Michael Ridland rid...@gmail.comwrote:


 Python / Django / Rails.

 I think you would be hard press for find a .NET job on AngelList.
 Well actually I can see 53 companies out of 3916 that use asp.net.
 https://angel.co/ifttt/jobs

 I'm not bashing just noting my observations and wanted opinions?





 On Thu, Aug 22, 2013 at 11:14 AM, Rob Andrew 
 rand...@voyageconnect.com wrote:

 Michael,

 What is the development platform of choice for the cool kids you are
 seeing?

 Just wondering.

 Rob



 *- Original Message -*
 *From:* Michael Ridland [mailto:rid...@gmail.com]
 *To:* ozdotnet@ozdotnet.com
 *Sent:* Thu, 22 Aug 2013 10:38:49 +1000
 *Subject:* Future of .NET

 Hi

 It's clear that in the Start-up and Web communities the choice for
 development platforms is not .NET.

 Does this mean eventually this will filter up? I'm wondering what
 this means for the future of .NET?

 I once had a developer say .NET is the new COBOL.











Re: decimal.ToString() (JSON Serialization)

2013-08-11 Thread Greg Harris
I would have thought that
? ((decimal)123.45).ToString(0.)
123.4500
would be cheaper faster more understandable?

On Sun, Aug 11, 2013 at 6:57 PM, Corneliu I. Tusnea
corne...@acorns.com.auwrote:

 Yes, that's my issue. It seems that if you somehow tell is there are
 multiple zeros is keeps than and displays them during the .ToString().
 This is what I ended up doing:
 private class JsonTextWriterOptimized : JsonTextWriter
 {
 public JsonTextWriterOptimized(TextWriter textWriter)
 : base(textWriter)
 {
  }

 public override void WriteValue(decimal value)
 {
  // we really really really want the value to be serialized as
 0. not 0.00 or 0.!
 //This is very important for all our hash calculations
  *value = Math.Round(value, 4);   *
 * value = Math.Roundvalue+0.1M)/1)*1)-0.1M, 4); //
 divide first to force the appearance of 4 decimals*
  base.WriteValue(value);
 }
 }
 The I use this writer during the serialization.

 That will make 123.12  123.1200 and even 100 to 100. :)



 On Sun, Aug 11, 2013 at 5:34 PM, Mark Hurd markeh...@gmail.com wrote:

 Note that, obviously, one of Decimal's claims to fame is that it
 considers trailing zeros as significant, so serializing /should/
 record those details.

 If you want to adjust that, use Decimal.Round(value, 2), but note that
 this does not add trailing zeros, only removes extras.

 --
 Regards,
 Mark Hurd, B.Sc.(Ma.)(Hons.)


 On 11 August 2013 14:32, Corneliu I. Tusnea corne...@acorns.com.au
 wrote:
  Hi,
 
  Anyone working today?
 
  How can I force the NewtonSoft Json Serializer to serialize two
 decimals the
  same way? decimal a = 1234.1200M; decimal b = 1234.12M;
 
  var sa = JsonConvert.SerializeObject(new { value = a });
  var sb = JsonConvert.SerializeObject(new {value = b});
  Console.WriteLine(sa);
  Console.WriteLine(sb);
 
  Results are: {value:1234.1200} {value:1234.12}
 
  How can I force it to serialize them both with 4 decimals so the
 results are
  identical?
 
  Even simpler, ignoring the serializer, how can I make sa.ToString() ==
  sb.ToString() ?
  The Json Serializer is only doing a simple .ToString() behind the
 scenes.
 
  Regards,
  Corneliu
 





Re: decimal.ToString() (JSON Serialization)

2013-08-11 Thread Greg Harris
Hi Corneliu,

I based my thoughts on my assumption that the WriteValue(decimal) method,
would need to output a string representation of the decimal value.  The
documentation (
http://james.newtonking.com/projects/json/help/index.html?topic=html/Methods_T_Newtonsoft_Json_JsonTextWriter.htm)
does not help at all here.  Looking at where you call the base
WriteValue(decimal) method I would have thought that you could call
WriteValue(string)?

So:
public override void WriteValue(decimal value)
{
// we really really really want the value to be serialized as
0. not 0.00 or 0.!
value = Math.Round(value, 4);
// divide first to force the appearance of 4 decimals
value = Math.Roundvalue+0.1M)/1)*1)-0.1M, 4);
base.WriteValue(value);
}

Would become:
public override void WriteValue(decimal value)
{
string result = value.ToString(0.);
base.WriteValue(result);
}

WARNING: This solution is NOT tested!

Regards
Greg H

On Mon, Aug 12, 2013 at 9:03 AM, Corneliu I. Tusnea
corne...@acorns.com.auwrote:

 Greg,

 That still does not make it easy to use with the JSON serializer where my
 main issue is.
 Here is an solution I found to work reliably across any value I throw at
 it.
 private class JsonTextWriterOptimized : JsonTextWriter
 {
 public JsonTextWriterOptimized(TextWriter textWriter)
 : base(textWriter)
 {
 }
 public override void WriteValue(decimal value)
 {
 // we really really really want the value to be serialized as
 0. not 0.00 or 0.!
 value = Math.Round(value, 4);
 // divide first to force the appearance of 4 decimals
 value = Math.Roundvalue+0.1M)/1)*1)-0.1M, 4);
 base.WriteValue(value);
 }
 }

 Then use the custom writer:

 var jsonSerializer = Newtonsoft.Json.JsonSerializer.Create();
 var sb = new StringBuilder(256);
 var sw = new StringWriter(sb, CultureInfo.InvariantCulture);
 using (var jsonWriter = new JsonTextWriterOptimized(sw))
 {
 jsonWriter.Formatting = Formatting.None;
 jsonSerializer.Serialize(jsonWriter, instance);
 }






 On Mon, Aug 12, 2013 at 1:38 AM, Greg Harris harris.gre...@gmail.comwrote:

 I would have thought that
 ? ((decimal)123.45).ToString(0.)
 123.4500
 would be cheaper faster more understandable?

 On Sun, Aug 11, 2013 at 6:57 PM, Corneliu I. Tusnea 
 corne...@acorns.com.au wrote:

 Yes, that's my issue. It seems that if you somehow tell is there are
 multiple zeros is keeps than and displays them during the .ToString().
 This is what I ended up doing:
 private class JsonTextWriterOptimized : JsonTextWriter
 {
 public JsonTextWriterOptimized(TextWriter textWriter)
 : base(textWriter)
 {
  }

 public override void WriteValue(decimal value)
 {
  // we really really really want the value to be serialized as
 0. not 0.00 or 0.!
 //This is very important for all our hash calculations
  *value = Math.Round(value, 4);   *
 * value = Math.Roundvalue+0.1M)/1)*1)-0.1M, 4); //
 divide first to force the appearance of 4 decimals*
  base.WriteValue(value);
 }
 }
 The I use this writer during the serialization.

 That will make 123.12  123.1200 and even 100 to 100. :)



 On Sun, Aug 11, 2013 at 5:34 PM, Mark Hurd markeh...@gmail.com wrote:

 Note that, obviously, one of Decimal's claims to fame is that it
 considers trailing zeros as significant, so serializing /should/
 record those details.

 If you want to adjust that, use Decimal.Round(value, 2), but note that
 this does not add trailing zeros, only removes extras.

 --
 Regards,
 Mark Hurd, B.Sc.(Ma.)(Hons.)


 On 11 August 2013 14:32, Corneliu I. Tusnea corne...@acorns.com.au
 wrote:
  Hi,
 
  Anyone working today?
 
  How can I force the NewtonSoft Json Serializer to serialize two
 decimals the
  same way? decimal a = 1234.1200M; decimal b = 1234.12M;
 
  var sa = JsonConvert.SerializeObject(new { value = a });
  var sb = JsonConvert.SerializeObject(new {value = b});
  Console.WriteLine(sa);
  Console.WriteLine(sb);
 
  Results are: {value:1234.1200} {value:1234.12}
 
  How can I force it to serialize them both with 4 decimals so the
 results are
  identical?
 
  Even simpler, ignoring the serializer, how can I make sa.ToString() ==
  sb.ToString() ?
  The Json Serializer is only doing a simple .ToString() behind the
 scenes.
 
  Regards,
  Corneliu
 







Re: Lots of data over a service

2013-08-06 Thread Greg Harris
Hi Greg,

What I did with my Motion Chart software (
http://www.eshiftlog.com/Silverlight/MotionGraphTestPage.html) to get
better download performance was:
• Move away from small WCF data transfers to transferring a single large
encoded compressed text file
• Only transfer raw data (no JSON/XML structure, which adds a LOT OF FAT)
• Minor use of CSV format, otherwise fixed format
• Define my own number formats to reduce size (remove unneeded decimal
places)
• Use zip file to transfer data
This has improved data load time by a factor of ~50-100 times (sorry no
hard numbers).
My data ended up being 430KB for ~32K rows, just over 13 bytes/row.

Example data:
C,007,Australia,Oceania,1820,2007
3413340017010
3413310017070
3413290017280
3413290017530
3413320017950
3413330018330

As traditional CSV text, this would look like:
CountryID,Year,LifeExpect,Population,GDP,CountryName,RegionCode,RegionName
007,1820,34.1,334000,000701.0,Australia,4S,Oceania
007,1821,34.1,331000,000707.0,Australia,4S,Oceania
007,1822,34.1,329000,000728.0,Australia,4S,Oceania
007,1823,34.1,329000,000753.0,Australia,4S,Oceania
007,1824,34.1,332000,000795.0,Australia,4S,Oceania
007,1825,34.1,333000,000833.0,Australia,4S,Oceania

There are three row types in the file:
Lines beginning with C are CSV country header lines - Like:
  C,007,Australia,Oceania,1820,2007
The values being:
  - C: Header
  - 007: Country number
  - Australia: Country name
  - Oceania: Country region
  - 1820: First year there is data
  - 2007: Last year there is data

Lines starting with 0-9 are data for one individual year for the above
country
  - The year is assumed to increment for every detail line
  - These detail lines are always 13 digits wide, fixed width fields, no
field separator, like:
   341 334001 7010 (spaces added for clarity, not in actual file)
  - Life expectancy (x10), example: 341 = 34.1 years
  - Population (last digit is exponent multiplier) 334001 = 334,000; 334002
= 3,340,000.
The last digit is effectively the number of zeros to add at the right
hand side.
  - GDP (per person, last digit is exponent multiplier) 7010 = $7,010; 7011
= $70,100.
 Again, the last digit is effectively the number of zeros to add at the
right hand side.

You need to be careful with this technique, how much data can you afford to
“lose” due to data rounding.

You were looking for “getting the data across with the least suffering and
complexity”, my complexity was continual refining to more and more simple
data structures, that were more and more looking like a data structure from
a 1960’s COBOL program when storage was expensive and processing was slow.

In hindsight, I feel that I still sent more data than I needed to down the
wire, I could have taken one digit off the age range, two digits off the
population and one digit off the GDP, saving another 4 bytes per row. Also,
could have used base 64 numbers, that would have given me another ~4 bytes
per row.  But the performance was fine with this structure, so I did no
more to cut it back.

WARNING: This worked fine with my specific smallish well known data set, if
I was putting this out into customer land, I would allow for a wider range
of values.  For example, if we were to need to express the values in
Indonesian Rupiahs rather than US Dollars, the amounts would go up by a
factor of 10,000 and my values would no longer fit.  My values only work
for large positive numbers, no room for a negative sign in front of the
number or the exponent.

So you need to design a file format that will work for your specific
situation and data and keep an eye on it to make sure it stays working.

After having done all of this, I am tempted to see what the performance
would be like with just simple raw CSV, if I was going to re-code this
today, that is what I would start with.

Regards
Greg #2 Harris


On Tue, Aug 6, 2013 at 6:00 PM, Greg Keogh g...@mira.net wrote:

 Folks, I have to send several thousand database entities of different
 types to both a Silverlight 5 and WPF app for display in a grid. I can't
 page the data because it's all got to be loaded to allow a snappy
 response to filtering it. I'm fishing for ways of getting the data across
 with the least suffering and complexity ... don't forget that Silverlight
 is involved.

 Does a WCF service with http binding allow streaming? That would be the
 ideal technique if it comes out of the box and isn't too complex.

 I ran an experiment to convert ~6000 entities into XML and the size is a
 hefty 6MB (no surprise!), however Ionic.Zlib deflates it down to a 500KB
 buffer which transmits acceptably fast. I'm unhappy with my code to round
 trip the entities-to-XML as it's a bit messy and has special case logic to
 skip association properties.

 Then I thought of Json, which I haven't need to use before. Would the
 Jason libraries make round-tripping easier? Are the built-in Framework
 classes good enough, or would I need to use something like 

Re: Lots of data over a service

2013-08-06 Thread Greg Harris
Hi Greg #N+1,



That Silverlight weekend in Docklands was a great event, thank you to the
guys that organised it!



I would not say that I implemented my own data compression, more I avoided
any extra fat in the data.  I agree that I would not have been getting much
extra mileage out of the pushing it as far as I did, to be truthful, I had
such bad performance before doing this, I just threw every realistic at
reducing the size of the data.



If I did it again, I would start with a CSV file with two record types
shown by the first character on the line.  This would avoid the cost of
XML/JSON format and the extra complexity of Greg format numbers.  So my
detail line would change from: 3413340017010 to D,34.1,334000,701 being
just 4 more characters in this example.



The 430KB for ~32K rows is for the uncompressed data, it compresses to
168KB, I am not going to do an experiment to show how much more space it
would take up without Greg format numbers and the extra commas, but my gut
tells me that you are right that zip would make the differences very small.



When I did the original work on the Optus soft copy bills, we were getting
~90% zip data compression, but there was a lot of white space in that that
would have compressed down to almost nothing.



Regards

Greg Harris

On Wed, Aug 7, 2013 at 8:22 AM, Greg Keogh g...@mira.net wrote:

 Howdy Greg #2 (or 3?)

 Haven't seen you since the Silverlight weekend in Docklands a few years
 ago.

 Very interesting! You have implemented your own data compression, and we
 used to do very similar things back in the late 70s and 80s when mainframe
 disk space was precious. Compression algorithms and software were not
 available or widely know then. In fact, Wikipedia says the LZ algorithms
 were only published in 1977/78 (not long ago in coding years).

 However, I have this uneasy feeling that all of your manual work is made
 mostly redundant by what zipping does for transmission. Zip will
 aggressively remove redundancy from your data, so well in fact that I
 suspect it might reduce the benefits of your pre-processing to a hair's
 width. Although your pre-processing will save space for the raw data if
 that's a problem on the client side.

 I was quite amazed that ~6000 of my entities as XML took 6.06MB, but
 deflated down to 492KB which is 8% of the original size and quite suitable
 for transmission as a single blob. I reckon your data as plain CSV would
 also reduce incredibly well.

 Given that I also deflate for transmission as a blob, I think my problem
 is now reduced to a pure coding problem: What format is easiest to
 round-trip my entities?

 Importantly, I'm looking for a general purpose way of transforming (most
 of the) the entity class properties. XML needs manual coding, Json I'm not
 sure about. I can't use pure binary serialization because it's not
 supported in Silverlight clients.

 Greg K



Re: Lots of data over a service

2013-08-06 Thread Greg Harris
Hi Paul,


 Is this something you will use yourself or for a client, or propose to
make available one way or another?

This is work that I did myself as a side project some years ago to cement
my Silverlight and C# knowledge.  I tried to find some commercial interest
in it, but it just was not there in 2009/2010 when I was looking.  I am
very open to suggestions.



Some of my original notes on the project are:



The web site where I first saw this style of graph on one of the TED talks (
http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html)
talks by Hans Rosling (http://en.wikipedia.org/wiki/Hans_Rosling) of the
Karolinska Institute, where he presented the work done at Gap Minder (
http://gapminder.org) I was very impressed and assumed that the graphics
system behind the graph was some extensive university project that would be
hard to reproduce.



When I saw the graph again some months later during a presentation by
Tristan Kurniawan  (then at SSW) on good user interface design, it occurred
to me that this could be done as a Silverlight project.  At the time Adam
Cogan said yeah sure Greg, you do that this weekend… While it was clear
that it would be a lot more than a weekend job, I started on the project as
my 'background project', which has took up about 18 Months of background
work to complete (say equivalent of three-four months of full time work).



While this work is strongly influenced by the GapMinder project all the
code in this version is my own, I draw every pixel on the screen!



The data sources I used is from GapMinder.org, specifically see:

Life expectancy at birth:
http://spreadsheets.google.com/pub?key=phAwcNAVuyj2tPLxKvvnNPA

GDP per capita:
http://spreadsheets.google.com/pub?key=phAwcNAVuyj1jiMAkmq1iMg

Population : http://spreadsheets.google.com/pub?key=phAwcNAVuyj0XOoBL_n5tAQ



The data needed extensive massaging to get the data into a more usable
format and to interpolate missing data between known values.  See the data
tabs on the left hand side of the graph for the raw data I ended up with.



Where data is missing for some years for a country, that data is estimated
by drawing a straight line between two known data points, this is then used
to derive data for the missing years in between.



The data displayed is not complete and may have errors and omissions, where
there was a problem with part of the data set, that was left out rather
than represent incorrect data.   There was a problem merging separate data
sets where countries showed different names, so a direct merge was not
possible, in this case if clear merge did not present itself, the data was
excluded.

Other errors may have been introduced into the data during preparation the
data for representation in this format (I welcome someone doing a through
data validation).



Once I had all of the data I worked on getting the graph drawn, the graph
is drawn with many lines, circles and rectangles drawn on a Silverlight
canvas.  With the sheer volume of data and updates needed, this was a bit
of a trial and error process to find processes that worked effectively at
an acceptable performance.


Regards

Greg Harris

On Wed, Aug 7, 2013 at 8:46 AM, Paul Evrat p...@paulevrat.com wrote:

 Greg,

 ** **

 I saw the TED talk that you note was the inspiration for this. I thought
 at the time it was a brilliant way to present and understand data. Plus it
 and the presenter had the audience totally amused but it really made the
 data talk.

 ** **

 Is this something you will use yourself or for a client, or propose to
 make available one way or another?

 ** **

 Regards,

 ** **

 ** **

 *From:* ozdotnet-boun...@ozdotnet.com [mailto:
 ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Greg Harris
 *Sent:* Wednesday, 7 August 2013 1:30 AM
 *To:* ozDotNet
 *Subject:* Re: Lots of data over a service

 ** **

 Hi Greg,

 ** **

 What I did with my Motion Chart software (
 http://www.eshiftlog.com/Silverlight/MotionGraphTestPage.html) to get
 better download performance was:

 • Move away from small WCF data transfers to transferring a single large
 encoded compressed text file

 • Only transfer raw data (no JSON/XML structure, which adds a LOT OF FAT)*
 ***

 • Minor use of CSV format, otherwise fixed format

 • Define my own number formats to reduce size (remove unneeded decimal
 places)

 • Use zip file to transfer data

 This has improved data load time by a factor of ~50-100 times (sorry no
 hard numbers).

 My data ended up being 430KB for ~32K rows, just over 13 bytes/row.

 ** **

 Example data:

 C,007,Australia,Oceania,1820,2007

 3413340017010

 3413310017070

 3413290017280

 3413290017530

 3413320017950

 3413330018330

 ** **

 As traditional CSV text, this would look like:

 CountryID,Year,LifeExpect,Population,GDP,CountryName,RegionCode,RegionName
 

 007,1820,34.1,334000,000701.0,Australia,4S

Re: Estimate Time and Cost before signing a contract

2013-08-02 Thread Greg Harris
Hi Richard,


Fixed price quotes can be a great way to make good money and to lose hard
earned money, you have to take care and make sure you know what you are
getting yourself into.


Businesses like them, because they know their maximum exposure.


I find that there a far too many clients, who think that they can estimate
software development time, but they have little (no) true experience in
software development.


Some thoughts…


Make sure that scope is clear with at least one bullet point for every
deliverable that you know they are expecting and also clearly state that
anything not listed in the deliverables will be cost plus later.


This also helps them make sure that they have asked for everything they
want / expect. I also typically have a list of non-deliverables, where we
have discussed some feature and agreed that it would be included in a later
version.


Make sure that the contract is not a one way street, if you are expected to
take the risk on a late delivery, you should also get the reward of getting
it in early.  If the client is asking you for a fixed price, then you
should have the option to do the work where, when and how you like.  This
also ties the client into waterfall development, once you give them a
version for test / review, there will be a stack of change requests coming
in AT THEIR COST!


I have found that some projects more than double in size with the change
requests, that is why they have to be managed.  Take care doing a few for
free, or you will set up an expectation.


Look out for clauses like: “Must be easy to use”, “Must be documented to
our standard”, “Must be fully commented”, “Must follow our coding
standard”, “Must be approved by our standards group”, “Must be approved by
our DBA”, “Must interface with our un-documented system”, these are all
open ended non-objective unclear requirements.


My standard way of sizing a project is loosely based on (very loosely)
function point counting, I count the number of database tables and simple
screens and multiply this by a factor that I have worked out over the years
of my realistic productivity, then I add on a margin for complex logic,
complex screens, client liaison time, documentation, testing and general
stuffing around that all projects have.


Number one piece of advice, if you feel you don’t have enough information
to make a meaningful estimation, then do your best (worse case) guess and
at least double it.


After I have done this, I look at the number and ask if it feels right or
not, if not I adjust it.  When you come to a final number, round it to a
number that is not quite so analytical, the last two or three digits should
always be zeros.


If they say sign now or loose the contract, you say, that is fine, I will
sign after I complete the analysis at $X per hour, if they don’t like that,
you have to make the call on risk / reward ratio.


Your analysis time should be charged or you are setting up an expectation
that you will do work for free.


Follow every conversation with an email to the client sponsor, CC to who
you were talking to “As per my conversation with Fred, you need xyz and do
not need abc.  This will be provided with an increase in the project scope
of X days and Y dollars.  Please confirm your agreement by return email.”.


Good luck

Regards

Greg Harris



On Fri, Aug 2, 2013 at 7:51 PM, Richard Jones rjjone...@hotmail.com wrote:

 I have been asked by a potential client to work out time and cost estimate
 before I have signed a contract to perform the work. They indicated they
 didn't want a recruitment company.

 To me this seems a bit strange, as I have never experienced this before, I
 have usually signed a contract got in and did the work, however, this is
 different. They have indicated to me that they think this type of work will
 take 3 months, however, they would like me to confirm/demonstrate time and
 cost.

 Has anyone had this type of work?, any helpful comments/suggestions would
 be grateful.





A simple tick the boxes data entry system

2013-06-23 Thread Greg Harris
Hi Everybody


I have a client that needs a simple tick the boxes data entry system.

This is to be used by their client’s who may or may not know how to
navigate web applications and will be of a wide age, educational and
ethnicity range.

This will often be used on the road with poor access to the internet and
general support.

Expected volume is 30 questionnaires with up to 30 questions on each, all
of which must be processed with less than 30 minutes human processing time
per day.

I was thinking of printing a questionnaire page for each of them and then
getting a data entry person to enter the results.

But, I also want to be able scan the pages, because it is being used on the
road, I don’t think that it is realistic for the client to take a scanner
with him, I was thinking he could just use a camera and take a photo of the
completed questionnaire.

The photo would be scanned for a QR code to identify the document and also
scan the rest of the document for ticks in boxes, all of which will be in
fixed locations on the page.


Questions:

1. Has anyone done anything like this?

2. Do you have any suggestion on how to best implement it and how to avoid
problems ?

4. Do you know of any good .NET libraries that could help me?


Many thanks

Greg Harris


Re: Simple or hard solution

2011-09-29 Thread Greg Harris
We are using NCalc
I dont know much details on it
http://ncalc.codeplex.com/

On Thu, Sep 29, 2011 at 4:45 PM, Anthony Mayan ifum...@gmail.com wrote:

 thanks noonie


 interesting..such a simple request..appears like a lot work for a
 solution..but i must persevere!

 On 9/29/11, noonie neale.n...@gmail.com wrote:
  Greetings,
 
  Google seems to think not :-(
 
  There are suggested work-arounds depending on what 'x' actually is.
 
  Use COM to instantiate a script library or misuse a data table or even
 write
  your own.
 
 
 http://www.velocityreviews.com/forums/t94154-eval-function-in-vb-net.html
 
  http://bytes.com/topic/net/answers/459258-eval-function-vb-net
 
  --
  Regards,
  noonie
 
  On 29 September 2011 15:42, Anthony Mayan ifum...@gmail.com wrote:
 
  I have a function
 
  sub SayHello(word as string)
 Dim x as string=word
 
 trace.write(word) ''works fine of course
 
 trace.write(eval(x)) 'is this possible?? or how can i make this
  possible
  end sub
 
 



Re: [OT] Looking for a Permanent Talented .Net Developer (VB.Net or C#)

2011-06-10 Thread Greg Harris
Hi All,

Thanks for your responses, some answers to general questions I have
received...

Yes the job is in the Sydney CBD, not far from Wynyard.

To be honest, we have not yet thought about the salary range too much, we
want to see what the talent available is and we will then think how that
will fit within the team and pay what we need to get the talent (within
reason).

All the best

Greg
On Fri, Jun 10, 2011 at 11:51 AM, Greg Harris harris.gre...@gmail.comwrote:

  Hi All,

 We are Looking for a Permanent Talented .Net Developer (VB.Net or C#)
 About us:

 · Sydney based international software house specialising in
 financial software in business for over 15 years experiencing rapid market
 driven growth

 · International offices in North America and Europe

 · Existing team of 8 highly talented developers

 · Great environment to learn / improve best practice software
 development, with test driven development, continuous integration, agile
 practices and scrum project management

 · Pay above market salaries to attract awesome people
 Our requirements for our new team member are:

 More than 24 months relevant commercial experience with strong knowledge
 and experience with:

 · .Net Development (VB.Net or C#)

 · Deep understanding of Object Oriented Design

 · Agile / test driven development

 · Win forms development

 · Relational database design / development with SQL Server

 · Financial software or financial modelling experience will be
 highly regarded

 We can only consider permanent Australian permanent residents who can
 interview and work full time in our Sydney office.

 This is a great opportunity to work with the best in the industry, to take
 this to the next level, please send me a copy of your CV for our
 consideration.

 No agencies please.

 All the best

 Greg Harris

 harris.gre...@gmail.com



[OT] Looking for a Permanent Talented .Net Developer (VB.Net or C#)

2011-06-09 Thread Greg Harris
Hi All,

We are Looking for a Permanent Talented .Net Developer (VB.Net or C#)
About us:

· Sydney based international software house specialising in
financial software in business for over 15 years experiencing rapid market
driven growth

· International offices in North America and Europe

· Existing team of 8 highly talented developers

· Great environment to learn / improve best practice software
development, with test driven development, continuous integration, agile
practices and scrum project management

· Pay above market salaries to attract awesome people
Our requirements for our new team member are:

More than 24 months relevant commercial experience with strong knowledge and
experience with:

· .Net Development (VB.Net or C#)

· Deep understanding of Object Oriented Design

· Agile / test driven development

· Win forms development

· Relational database design / development with SQL Server

· Financial software or financial modelling experience will be
highly regarded

We can only consider permanent Australian permanent residents who can
interview and work full time in our Sydney office.

This is a great opportunity to work with the best in the industry, to take
this to the next level, please send me a copy of your CV for our
consideration.

No agencies please.

All the best

Greg Harris

harris.gre...@gmail.com


Re: How To do something every so often

2010-05-19 Thread Greg Harris
Hi Everyone,

I think that this shows that we all have too much time on our hands!

Our modern machines are so fast that this is an irrelevant question for all
but the most compute intensive applications.

The standard well known design pattern is to use the modulus (%) function.

if ( (i % lTestPoint) == 0 )

  Console.Write( x );



As about 80% of development cost is in maintenance, then keep it simple
unless you really really need to change it for a good reason.  So DON’T
CHANGE THIS!

I wrote a quick program to test this and got the result that it does not
really matter which technique you use when you compare it to doing a little
bit of real work inside the loop.

In some more detail…

The program had a tight loop going from zero to 268,435,456 (0x1000) and
outputting an “x” every 16,777,215 (0xff) times through the loop.

Tests results were:

· Using modulus (%) function, time = 3.20 seconds (the slowest)

· Using separate counter with equals (==) test, time = 1.81 seconds

· Using separate counter with greater than equals (=) test, time =
1.79 seconds

· Using Boolean logic on the base counter, time = 1.64 seconds (the
fastest test)

· Not test at all, time = 1.01 seconds

· Doing some real work and not doing the test at all, time = 9.93
second

This shows what I would expect:

· Not doing the test is the fastest.

· A Boolean logic test is the fastest way of actually doing the
test.

· A separate counter is a little slower, but effectively the same
time.

· It does not matter if you test for equal (==) or greater than or
equal (=) (the difference is in the third decimal place)

· Yes modulus function (%) is the slowest

· But all irrelevant compared to doing some real simple work in the
loop

The modulus function (%) took 1.55 seconds more than the Boolean logic over
268,435,456 iterations, it has taken me about an hour to write this test
program and email, the modulus function could have been run more than 300
Billion times in this time!
Test program output



lEndPoint:  268435456

lTestPoint: 16777215

Start Test 1: using Mod (%)

x

Done 00:00:03.1981829



Start Test 2: using a separate counter test is ==



Done 00:00:01.8081034



Start Test 3: using a separate counter test is =



Done 00:00:01.7921025



Start Test 4: using boolean logic on the base counter



Done 00:00:01.6380937



Start Test 5: No test at all



Done 00:00:01.0070576



Start Test 6: No test at all, but doing some real work



Done 00:00:09.9345682
Test program



static void Main(string[] args)

{

  DateTime lStartTime ;

  DateTime lEndTime   ;

  TimeSpan lDelta ;

  long lCounter   ;

  long lEndPoint  = 0x1000; // 268,435,456

  long lTestPoint = 0xff  ; //  16,777,215

  double   lSum   = 0 ; // sum of the square roots (the work
test#6 only)



  Console.WriteLine( lEndPoint:   + lEndPoint .ToString() );

  Console.WriteLine( lTestPoint:  + lTestPoint.ToString() );



  Console.WriteLine( Start Test 1: using Mod (%) );

  lStartTime = DateTime.Now;

  for ( long i = 0; i=lEndPoint; i++ )

  {

if ( (i % lTestPoint) == 0 )

  Console.Write( x );

  }

  Console.WriteLine();

  lEndTime = DateTime.Now;

  lDelta   = lEndTime - lStartTime;

  Console.WriteLine( Done  + lDelta.ToString() );

  Console.WriteLine();



  Console.WriteLine( Start Test 2: using a separate counter test is ==);

  lCounter = 0;

  lStartTime = DateTime.Now;

  for ( long i = 0; i=lEndPoint; i++ )

  {

lCounter++;

if ( lCounter == lTestPoint )

{

  Console.Write( x );

  lCounter = 0;

}

  }

  Console.WriteLine();

  lEndTime = DateTime.Now;

  lDelta   = lEndTime - lStartTime;

  Console.WriteLine( Done  + lDelta.ToString() );

  Console.WriteLine();



  Console.WriteLine( Start Test 3: using a separate counter test is =);

  lCounter = 0;

  lStartTime = DateTime.Now;

  for ( long i = 0; i=lEndPoint; i++ )

  {

lCounter++;

if ( lCounter = lTestPoint )

{

  Console.Write( x );

  lCounter = 0;

}

  }

  Console.WriteLine();

  lEndTime = DateTime.Now;

  lDelta   = lEndTime - lStartTime;

  Console.WriteLine( Done  + lDelta.ToString() );

  Console.WriteLine();



  Console.WriteLine( Start Test 4: using boolean logic on the base
counter );

  lStartTime = DateTime.Now;

  for ( long i = 0; i=lEndPoint; i++ )

  {

if ( (i  lTestPoint) == lTestPoint )

{

  Console.Write( x );

}

  }

  Console.WriteLine();

  lEndTime = DateTime.Now;

  lDelta   = lEndTime - lStartTime;

  

Re: Managing application and database version dependencies

2010-05-07 Thread Greg Harris
It is also worthwhile to check the environment at the same time, I have a
flag for development test and production, you do not want to run tests
against your production database!

On Fri, May 7, 2010 at 3:06 PM, David Richards ausdot...@davidsuniverse.com
 wrote:

 I have a Version table that has a single column, single row with a
 version number in the form A.B.C.D.  I started doing this to follow
 the same version standard as my apps.  So the number would be:

 A - Breaking change
 B - Non breaking change (eg additional table, additional column with
 default)
 C - No interface change (eg an index)
 D - only included to have the same format

 In practice though, pretty much every change I've ever had to make has
 been a breaking change so a single number would have been just as
 good.  I still use the format though, just for the sake of being
 standardised.


 David

 If we can hit that bullseye, the rest of the dominoes
  will fall like a house of cards... checkmate!
  -Zapp Brannigan, Futurama




 On Fri, May 7, 2010 at 14:24, Greg Keogh g...@mira.net wrote:
  Matt, I like to put two magic numbers in a special database table: The
  change number, The compatibility number.
 
 
 
  The first increments whenever the schema changes. The second increments
 only
  when a “breaking” change is made.
 
 
 
  The app startup code can use these numbers to determine if it can run or
  not, or perhaps to run in a crippled way (but I haven’t needed that yet).
 
 
 
  Your needs are probably far more complicated that I describe, but my tiny
  humble system at least forces you to think about keeping the code and DB
  working together.
 
 
 
  Greg