Re: Lost a new commercial user this week :(

2015-01-01 Thread Daniel Davidson via Digitalmars-d

On Monday, 29 December 2014 at 05:43:13 UTC, Walter Bright wrote:


Often I'll pipe the pretty-printed debug output to a file, as 
it can be voluminous, and then actually edit the file to bring 
out what I need.


Not possible with a debugger.



I think it is. Here is a small adjustment to consider for your 
workflow. Continue instrumenting your code with capability to 
print things as you like - data structures, etc. Then when you 
need to debug something, rather than (throw in print, compile, 
run, diagnose repeat) drop into gdb judiciously and call 
print, examine the output. Need more data do it again with 
the same executable. The savings is no need to repeatedly 
build/litter code with prints and you would use the debugger and 
your current style.


I seriously doubt you would change your style as you appear quite 
fond of it - clearly it works for you. The point though is others 
do find value in the debugger and this is one reason. Also, there 
are pretty printers of data structures for gdb and if you don't 
like them you could write your own.


(dmd can have pretty complex relationships between data 
structures and the path through the code. I might want to look 
at these fields of a type, but not those fields. Etc. I.e. I 
routinely build custom debugging aids for particular problems.)




Re: Walter's DConf 2014 Talks - Topics in Finance

2014-12-22 Thread Daniel Davidson via Digitalmars-d

On Monday, 22 December 2014 at 13:37:55 UTC, aldanor wrote:
For some reason, people often relate quant finance / high 
frequency trading with one of the two: either ultra-low-latency 
execution or option pricing, which is just wrong. In most 
likelihood, the execution is performed on FPGA co-located 
grids, so that part is out of question; and options trading is 
just one of so many things hedge funds do. What takes the most 
time and effort is the usual data science (which in many 
cases boil down to data munging), as in, managing huge amounts 
of raw structured/unstructured high-frequency data; extracting 
the valuable information and learning strategies;



This description feels too broad. Assume that it is the data 
munging that takes the most time and effort. Included in that 
usually involves some transformations like (Data - Numeric Data 
- Mathematical Data Procssing - Mathematical 
Solutions/Calibrations - Math consumers (trading systems low 
frequency/high frequency/in general)). The quantitative data 
science is about turning data into value using numbers. The 
better you are at first getting to an all numbers world to start 
analyzing the better off you will be. But once in the all numbers 
world isn't it all about math, statistics, mathematical 
optimization, insight, iteration/mining, etc? Isn't that right 
now the world of R, NumPy, Matlab, etc and more recently now 
Julia? I don't see D attempting to tackle that at this point. If 
the bulk of the work for the data sciences piece is the maths, 
which I believe it is, then the attraction of D as a data 
sciences platform is muted. If the bulk of the work is 
preprocessing data to get to an all numbers world, then in that 
space D might shine.



implementing fast/efficient backtesting frameworks, simulators 
etc. The need for efficiency here naturally comes from the 
fact that a typical task in the pipeline requires 
dozens/hundreds GB of RAM and dozens of hours of runtime on a 
high-grade box (so noone would really care if that GC is going 
to stop the world for 0.05 seconds).




What is a backtesting system in the context of Winton Capital? Is 
it primarily a mathematical backtesting system? If so it still 
may be better suited to platforms focusing on maths.


Re: Walter's DConf 2014 Talks - Topics in Finance

2014-12-22 Thread Daniel Davidson via Digitalmars-d

On Monday, 22 December 2014 at 19:25:51 UTC, aldanor wrote:
On Monday, 22 December 2014 at 17:28:39 UTC, Daniel Davidson 
wrote:

I don't see D attempting to tackle that at this point.
If the bulk of the work for the data sciences piece is the 
maths, which I believe it is, then the attraction of D as a 
data sciences platform is muted. If the bulk of the work is 
preprocessing data to get to an all numbers world, then in 
that space D might shine.
That is one of my points exactly -- the bulk of the work, as 
you put it, is quite often the data processing/preprocessing 
pipeline (all the way from raw data parsing, aggregation, 
validation and storage to data retrieval, feature extraction, 
and then serialization, various persistency models, etc).


I don't know about low frequency which is why I asked about 
Winton. Some of this is true in HFT but it is tough to break that 
pipeline that exists in C++. Take live trading vs backtesting: 
you require all that data processing before getting to the math 
of it to be as low latency as possible for live trading which is 
why you use C++ in the first place. To break into that pipeline 
with another language like D to add value, say for backtesting, 
is risky not just because the duplication of development cost but 
also the risk of live not matching backtesting.


Maybe you have some ideas in mind where D would help that data 
processing pipeline, so some specifics might help?


Re: Walter's DConf 2014 Talks - Topics in Finance

2014-12-22 Thread Daniel Davidson via Digitalmars-d

On Tuesday, 23 December 2014 at 03:07:10 UTC, Laeeth Isharc wrote:
At one very big US hf I worked with, the tools were initially 
written in Perl (some years back).  They weren't pretty, but 
they worked, and were fast and robust enough.  I has many new 
features I needed for my trading strategy.  But the owner - who 
liked to read about ideas on the internet - came to the 
conclusion that Perl was not institutional quality and that we 
should therefore cease new development and rewrite everything 
in C++.  Two years later a new guy took over the larger group, 
and one way or the other everyone left.  I never got my new 
tools, and that certainly didn't help on the investment front.  
After he left a year after that they scrapped the entire code 
base and bought Murex as nobody could understand what they had.


If we had had D then, its possible the outcome might have been 
different.




Interesting perspective on the FI group's use of perl. Yes that 
group was one of the reasons a whole new architecture committee 
was established to prevent IT tool selection (like Perl and 
especially Java) the firm did not want to be used or supported. 
Imagine after that being prohibited from using Python. Having to 
beg to get to use it embedded from C++ and when finally granted 
permission having to rewrite the much of boost python since boost 
was not a sanctioned tool. Big companies make decisions 
differently than others. I believe D would not have been a help 
in that organization and requesting its use would have been the 
surest way to get a termination package. That said, in other 
organizations D might have been a good choice.


So in any case, hard to generalise, and better to pick a few 
sympathetic people that see in D a possible solution to their 
pain, and use patterns will emerge organically out of that.  I 
am happy to help where I can, and that is somewhat my own 
perspective - maybe D can help me solve my pain of tools not up 
to scratch because good investment tool design requires 
investment and technology skills to be combined in one person 
whereas each of these two are rare found on their own.  (D 
makes a vast project closer to brave than foolhardy),


It would certainly be nice to have matrices, but I also don't 
think it would be right to say D is dead in water here because 
it is so far behind.  It also seems like the cost of writing 
such a library is v small vs possible benefit.




I did not say D is dead in the water here. But when it comes to 
math platforms it helps to have lots of people behind the 
solution. For math julia seems to have that momentum now. Maybe 
you can foster that in D.





Re: Lost a new commercial user this week :(

2014-12-20 Thread Daniel Davidson via Digitalmars-d

On Friday, 19 December 2014 at 19:20:15 UTC, Walter Bright wrote:

On 12/19/2014 7:38 AM, Daniel Davidson wrote:

Could this lack of need be
attributable to understanding of the entire code base being 
used?


No. It's attributable to I use different methods of debugging.

The dmd source code is littered with debugging aids I've 
written. The classic example is having a pretty-printer for 
each data structure. I don't find the typical debugger 
pretty-printer to be adequate at all - they never dump the type 
in the way that I think about the type.


Sure, sounds like a winning strategy. Probably not applicable, 
but were you to run into an issue with vibe or websockets would 
you proceed to write pretty printers for the supplied data 
structures, the returned data structures, etc, or would you live 
with the not so pretty gdb structures just to get your debug 
session over with?


The point is it seems like more of your work on code is working 
with your own code - i.e. fewer outside dependencies or outside 
dependencies that you are intimately familiar with due to years 
of experience. This reduces the benefit or need of the debugger.


Re: Lost a new commercial user this week :(

2014-12-19 Thread Daniel Davidson via Digitalmars-d

On Friday, 19 December 2014 at 12:52:32 UTC, uri wrote:
This is true. The first week for a new developer where I work 
is developing a better boot loader. The debugger is not allowed 
during this induction week and as a result our devs learn how 
to write better code first time through careful planning and 
understanding of what's going on at the machine level.


As you beat your chest over your boot loader - consider both this 
example and in general Walter's lack of need for a debugger. 
Could this lack of need be attributable to understanding of the 
entire code base being used? I imagine you don't have many 
outside dependencies for your boot loader. I imagine most of what 
Walter works on involves an entire stack that he has either 
written from ground up or when pulling outside dependencies in 
has much less surface area to deal with that is new to him. 
Contrast that with someone wanting to tie into a framework 
(vibed) or use a sophisticated library (websockets). Yes, you can 
stick with the real men don't use debuggers line, but that is 
much easier to stomach when your outside dependencies are small 
in scope. Isn't one of the best ways to learn a new codebase to 
step through it in the debugger?


Maybe your devs learn how to write better code the first time 
through. But what happens when they are thrown new requirements 
on dependencies that are challenging to deal with?


Re: Lost a new commercial user this week :(

2014-12-19 Thread Daniel Davidson via Digitalmars-d
On Friday, 19 December 2014 at 16:27:03 UTC, H. S. Teoh via 
Digitalmars-d wrote:



Could
this lack of need be attributable to understanding of the 
entire code

base being used?


Nope.

FWIW, I work with a large enterprise project that is far too 
large for
anyone to grasp in its entirety, yet I don't find debuggers 
that helpful
either.  Well, they *are* helpful in some cases, just not as 
many as

people often claim, as least not for me.  The oft-maligned
printf-debugging, when wisely used in a targeted way, is often 
better
IME because I'm dealing with an embedded environment, where 
it's a pain
to setup a debugger. Well, it *can't* run a full debugger; the 
best it
can so is to run gdbserver which I then have to connect to 
remotely.
Once that's setup, I run into the frustrating problem of gdb 
being

unable to find the requisite symbols, needing to be in the same
directory as the executable, being unable to locate the source 
file(s),

being unable to resolve library symbols, ad nauseaum.



I think that at least not for me is important there. 
Personally, I did not malign the printf debugging approach. 
However nothing is more painful than sitting through a printf 
debugging session with someone new to code who is using the 
printf to learn the code, when a perfectly good debugger is 
available. Is the embedded environment you describe the typical 
case?


I'm not advocating, not reading or attempting to understand the 
code. But, assume you have your best understanding at hand and 
still have questions and/or bugs; you drop a breakpoint in code 
that is new to you. What you get is much more than the 
documentation: you get the callstack allowing you to navigate the 
code, you get the data allowing you to see the structures and 
their content. Problems with gdb does not take away from the 
benefit debugging in general. Remember this thread was started 
with someone having bugs in a windows environment.


Not many advocate ignorance. Programmers do advocate laziness 
with good cause. In theory, if a person can successfully use code 
without understanding all details of its implementation then that 
person has made a mental cost savings. Maybe not so important to 
the set of coders here - but there is value in not being required 
to understand all details. One benefit of the separation of 
concerns between interfaces and implementation is the level of 
understanding required for the former might be significantly less 
than the latter.




I imagine you don't have many outside dependencies for your 
boot
loader. I imagine most of what Walter works on involves an 
entire

stack that he has either written from ground up or when pulling
outside dependencies in has much less surface area to deal 
with that

is new to him.


Unfortunately, your imagination isn't quite accurate in this 
case.


How so? Is the bootloader using vibed or websockets? Does dmd use 
vibed or websockets? Of course your next reply can be all the 
complex libraries dmd uses internally to which I'll reply that 
all of those are code that Walter is likely intimately familiar 
with making it easy for him with his vast experience to not use a 
debugger. No one has to use a debugger, but I'm in the camp that 
they can make life easier especially when getting familiar with 
new code. Maybe here I'm in the minority.





Contrast that with someone wanting to tie into a framework 
(vibed) or
use a sophisticated library (websockets).  Yes, you can stick 
with the

real men don't use debuggers line, but that is much easier to
stomach when your outside dependencies are small in scope.


That is a false assumption, based on my experience as described 
above.




How does your unfortunate situation of being with a large 
enterprise project that is far too large for anyone to grasp in 
its entirety, yet I don't find debuggers that helpful relate to 
the extent of dependencies and their impact on utility of a 
debugger? I get that in general you don't find debuggers useful, 
which is fine. When trying to understand a tangled mess of code 
that you did not write your preferred method is read the code and 
printf. Those are valuable. Maybe someone who rarely or never 
uses a debugger is not the best to gauge the benefit differential 
of a debugger on systems with few outside dependencies versus 
systems with heavy outside dependencies.




Isn't one of the best ways to learn a new codebase to step 
through it

in the debugger?

[...]

Absolutely not. You'd get lost in the forest *really* quickly 
and lose
sight of the forest for the trees, especially in a large 
codebase where
each logical operation may involve a dozen layers of 
abstraction, and
lower-level code is all generic so you won't easily understand 
how it
concretely fits into the big picture. For this, I recommend 
reading the

source code instead(!). That's what the source code is for!!



More chest beating. I don't see how the *addition* of a debugger 
causes one to get lost. I'm in 

Re: Lost a new commercial user this week :(

2014-12-18 Thread Daniel Davidson via Digitalmars-d



So to sum things up

1. you blindly walked into something you had no real experience 
with, apart from some vague memory that some parts of vibed 
worked for you a while ago.




Pure bile. No - reread the thread.

2. you knew the debugger might be an issue, if not _the_ issue, 
but chose not to test it beforehand, or couldn't test it 
beforehand, because


3. you were working on a foreign framework (and simply hoped 
things would work out fine, fingers crossed!).




Isn't that what you would hope? I would.

These are crucial bits of information that were missing from 
your first report.


Please try to be more accurate the next time. Holding back 
crucial information gets us nowhere. It only leaves the (false) 
impression that D is completely unusable.


How can you read this thread and think he was holding back 
anything. Everything he says is *easily* relatable and 
understandable. Besides he is trying to provide valuable 
information in a way that is much less abusive than many of the 
threads in this community. What I read was not that D is 
completely unusable but rather the D debug story on Windows is 
a big problem and it lost D some potential users.


Re: discuss disqus

2014-08-11 Thread Daniel Davidson via Digitalmars-d
On Tuesday, 5 August 2014 at 11:00:44 UTC, Klaim - Joël Lamotte 
via Digitalmars-d wrote:

Hi,​
did you consider using Discourse at least as a replacement for 
comments

system?  http://www.discourse.org/
It's made by the guys who made stackoverflow.com and it's 
useful at least

as an alternative to disqus and
also obviously as a forum.
Some blogs (using wordpress) do use Discourse for comments.
However, Discourse backend is wrote using ruby so if you want 
to self host

you have to do some install work but
they simplified it apparently by providing a docker as the 
default

installer.


Curious why no one replied to this?

I can not vouch for this one but it looks nice if you go to the 
demo site on the readme page: https://github.com/phusion/juvia


As a meta-question - is there any way for threads like this be 
ended with some form of NextAction required? Or is the best 
course to just let it fall to the wayside?


Thanks
Dan


Re: My D book is now officially coming soon

2014-05-05 Thread Daniel Davidson via Digitalmars-d-announce

On Monday, 3 March 2014 at 16:37:49 UTC, Adam D. Ruppe wrote:
As some of you might know, I've been working on a D book over 
the last few months. It is now available as coming soon on 
the publisher's website:


http://www.packtpub.com/discover-advantages-of-programming-in-d-cookbook/book



Congrats. Is there a early access option, like Manning Early 
Access Program, instead of just pre-order?


Thanks
Dan