Symbols missing, unmangle!

2017-08-30 Thread Johnson Jones via Digitalmars-d

It would be nice if, when symbols are missing, they are unmangled!

Error 42: Symbol Undefined 
_D12mMunchhousin12iMunchhousin11__T4GoTsZ4GoMFS12mMunchhousin18__T10MunchhousinTsZ10sMunchhousinfE12mMunchhousin9eGoffZv (void Munchhousin.Munchhousin.Go!(short).Go()


I know some like to read nonsense for fun, but I don't. Sure, I 
could learn, but it is a useless skill only good for interpreting 
link errors, writing compilers, and being the life of the party, 
none of which I want to do for a living.









Re: Fix D's segfaults!

2017-08-20 Thread Johnson Jones via Digitalmars-d

On Sunday, 20 August 2017 at 18:35:07 UTC, Daniel Kozak wrote:
This is not segfault.  This is an uncatched exception.  So it 
is your error. You does not do proper error handling. But still 
IIRC you should be able to see place where things go wrong


Dne 20. 8. 2017 8:06 odpoledne napsal uživatel "Johnson Jones 
via Digitalmars-d" :


D has a major issue with segfaults! It always reports the 
fault in the lowest function that it occurs! This is 
completely useless!


std.file.FileException@std\file.d(755): Attempting to rename 
file X.lib to Y.lib: The system cannot find the file specified.


0x0041015E
0x00402C69
0x004025A3
0x00413ECF
0x00413E93
0x00413D94
0x0040DAD7
0x76D78744 in BaseThreadInitThunk
0x76FD582D in RtlGetAppContainerNamedObjectPath
0x76FD57FD in RtlGetAppContainerNamedObjectPath

This tells me nothing about where the error occurred in *my* 
program!


Dmd needs to be modified so that errors try to show from the 
source code. This should be obvious the reasons, if it is not 
possible, make it possible! There are no excuses why dmd 
should make me go on an easter egg hunt when a seg fault 
occurs.


Um,

That was just an example, the same type of output occurs with 
segfaults or any error/crash that D outputs stuff trying to be 
"helpful".


Anyways, your missing the point. You expect me to write 
try/catches in every level of my program to create the 
granularity one needs to simply get the location the error 
occured in? Where is that exactly?


How hard is it for dmd to know if 
std.file.FileException@std\file.d occurs in the code I created or 
somewhere else? It should be able to say "Hey, that is part of a 
standard library or other non-user component, let me try to walk 
back a little and see if I can find a location in the user code 
that led to this problem".


This should be quite easy with a stacktrace, simply walk back 
until the location is in user code.


So, regardless of anything, D telling me stuff like "Hey, your 
error occurred in phobos" doesn't tell me shit except the error 
occurred in phobos. I'm still looking for easter eggs, and I 
don't like easter(which is why I don't capitalize it).






Fix D's segfaults!

2017-08-20 Thread Johnson Jones via Digitalmars-d
D has a major issue with segfaults! It always reports the fault 
in the lowest function that it occurs! This is completely useless!


std.file.FileException@std\file.d(755): Attempting to rename file 
X.lib to Y.lib: The system cannot find the file specified.


0x0041015E
0x00402C69
0x004025A3
0x00413ECF
0x00413E93
0x00413D94
0x0040DAD7
0x76D78744 in BaseThreadInitThunk
0x76FD582D in RtlGetAppContainerNamedObjectPath
0x76FD57FD in RtlGetAppContainerNamedObjectPath

This tells me nothing about where the error occurred in *my* 
program!


Dmd needs to be modified so that errors try to show from the 
source code. This should be obvious the reasons, if it is not 
possible, make it possible! There are no excuses why dmd should 
make me go on an easter egg hunt when a seg fault occurs.




Re: Named multi-imports

2017-08-17 Thread Johnson Jones via Digitalmars-d

On Thursday, 17 August 2017 at 21:49:38 UTC, Timon Gehr wrote:

On 17.08.2017 23:03, aberba wrote:

On Wednesday, 16 August 2017 at 13:57:17 UTC, jmh530 wrote:

On Wednesday, 16 August 2017 at 09:54:41 UTC, aberba wrote:


This looks really clean for code modularity.

import io = std.stdio : {writeln, write}, ...


What does this add? A line like below would be confusing.
import io = std.stdio : {writeln, write}, writefln;

The following code compiles and the imports are less 
confusing.


import io = std.stdio : writeln, write;
import std.stdio : writefln;

void main()
{
io.write("foo");
io.writeln("bar");
writefln("My items are %(%s %).", [1,2,3]);
}


Its more like this:

import oo = {std.stdio : {writeln, write}, std.algorithm: 
{filter, map}, …};


oo.writeln();
oo.write();
oo.filter(...);
oo.map(...);



private struct oo{
import std.stdio: writeln, write;
import std.algorithm: filter, map;
// …
}

void main(){
oo.write("result: ");

oo.writeln(oo.map!(x=>x/2)(oo.filter!(x=>x%2==0)([1,2,3,4,5,6,10])));

}


Wow, that might solve the problem! A little more verbose but it 
does combine everything.


Any downsides?

Thanks.





Re: Named multi-imports

2017-08-17 Thread Johnson Jones via Digitalmars-d

On Thursday, 17 August 2017 at 21:03:33 UTC, aberba wrote:

On Wednesday, 16 August 2017 at 13:57:17 UTC, jmh530 wrote:

On Wednesday, 16 August 2017 at 09:54:41 UTC, aberba wrote:


This looks really clean for code modularity.

import io = std.stdio : {writeln, write}, ...


What does this add? A line like below would be confusing.
import io = std.stdio : {writeln, write}, writefln;

The following code compiles and the imports are less confusing.

import io = std.stdio : writeln, write;
import std.stdio : writefln;

void main()
{
io.write("foo");
io.writeln("bar");
writefln("My items are %(%s %).", [1,2,3]);
}


Its more like this:

import oo = {std.stdio : {writeln, write}, std.algorithm: 
{filter, map}, …};


oo.writeln();
oo.write();
oo.filter(...);
oo.map(...);


Someone gets it! ;)


Re: New Features [was Named multi-imports]

2017-08-16 Thread Johnson Jones via Digitalmars-d
On Wednesday, 16 August 2017 at 19:05:54 UTC, Jesse Phillips 
wrote:

On Tuesday, 15 August 2017 at 20:33:18 UTC, Johnson wrote:
On Tuesday, 15 August 2017 at 03:37:39 UTC, rikki cattermole 
wrote:
But then that only helps with one specific instance. D is full 
of language features, I do not see why everyone is so against 
them. Without them, D would be empty, nothing, and no one 
would use it. Adding language features should be see as 
something good, cause without them, we wouldn't get anywhere.


Its an important challenge of software development, and a 
number of articles out there about it.


https://www.google.com/search?q=the+cost+of+features&ie=utf-8&oe=utf-8

At first glance I wasn't finding anything which uniquely 
tackles compilers and languages.


Backwards compatibility isn't just for programming languages 
but can be more important.


Yes, but you are choosing a side, like most people. What about 
the cost of not advancing? How many man hours are wasted because 
someone won't implement feature because they "think" it will 
cause problems or because they are too lazy or won't get enough 
$$$ to do it?


Cost is not a one way street. When you don't do something it is 
doing something.  The whole problem with backwards compatibility 
is that it is based on ignorance.  When computers were first 
hitting the street, people were doing what I am suggesting, as 
that's all they could do. They screwed up a lot of things and 
wasted a lot of time. But then 50 years later people use that as 
an example, out of ignorance, to suggest that the same mistakes 
will occur. They completely neglect the fact that we wouldn't 
have what we have without all those mistakes either.


You can argue all you want, until you are purple in the face, but 
you cannot deny what I have said as being the truth and your 
arguments are baseless for the same reasons you claim mine is.


If one had to do things blindly and ignorantly, then yes, your 
arguments are sound. But by using your brain, learning from past 
mistakes, and moving forward to make progress, the issues can be 
minimized and a balanced can be made.


You cannot apply some general statement to all specific instances 
unless that statement is truly general. The backwards 
compatibility plague is based on ignorance, e.g., "We don't know 
what will be the ramifications of doing X so we will stick with 
the status quo!". That is a purely ignorant statement, that is, 
it is saying the same as "We are ignorant of what will happen if 
we do X so we won't do anything".


When you apply that logic to something that one doesn't have to 
be ignorant of, one is missing out on doing X and if X is good 
and done and improves things then it is a same and real ignorance 
wins again. No progress could ever be made if people didn't try 
things. If people try things intelligent then they minimize the 
problems that people like you are afraid of.


The best solution is a balance, wouldn't you agree?

When a "feature" offers no foreseeable issues(essentially nearly 
mathematically proved to be correct), then it shouldn't be looked 
as bad.


Again, as I pointed out, where would anything be if everyone had 
the mentality you state?


Would D have mixins? No, because who knows what kinda problems 
they could introduce in the language?


Would D have traits? No, because who knows what kinda problems 
they could introduce in the language?


etc...

etc..

etc..

etc..

And these cause problems not just in programming but in real 
life. No one wants to fix the problems, say, of America because 
who knows what kinda problems that will introduce... and given 
the track record of those that do the "problem fixing" we can be 
pretty sure of the outcome. But the problem is then not the 
problem fixing but those that fix the problems.


So, my point is that your argument is baseless and doesn't mean 
anything in the real world. It is a guide, a parable about the 
past and potentially the future, but people like you seem to like 
to make it a law, like gravity, which it is not. The sad fact is 
that it slows down real progress. One could make arguments about 
and if progress is a good thing or not in and of itself, but that 
is a different issue.



A good UI can help a user with complexity. So does consistency. 
Adding a syntax for special meaning can be difficult to 
remember. My personal example is properties in C#. The syntax 
is straight forward and clean, but only recently have I been 
able to remember how to write one: ReturnType Name { get { 
return a; } set(value) { a = value; } }
As for your specific suggestion I think it would be nice at 
times but the complexity you haven't specified is how do deal 
with ambiguities if two modules provide the same symbol name.


D may have a number of features which C++ doesn't and visa 
versa, the complexity of the language for C++ to have those 
features means I work with D and not C++.


Then why are you so against adding features? That is what m

Re: Named multi-imports

2017-08-16 Thread Johnson Jones via Digitalmars-d

On Wednesday, 16 August 2017 at 17:14:49 UTC, jmh530 wrote:

On Wednesday, 16 August 2017 at 14:42:51 UTC, Mike Wey wrote:


Wouldn't that just move the problem?

You then get an package that imports gtk.Window and a other 
package that imports gdk.Window, and if you want to use both 
you still need to add a renamed import or a static import in 
your own file.


I don't know anything about gtkd, but I think he means 
something like below.


.\gtkd\package.d
module gtkd;
public import gtk;
public import gdk;
...etc

.\gtkd\gtk\package.d
module gtk;
public import gtk.Window;
...etc

.\gtkd\gdk\package.d
module gdk;
public import gdk.Window;
...etc

So you should then be able to do something like
import gtkd : functionThatDoesntOverlap;
import gtk = gtkd.gtk : functionThatDoesOverlap;
import gdk = gtkd.gdk : functionThatDoesOverlap;

A longer-term solution is for something like
import gtkd;
to only pull in the functions/structs/classes/etc that are 
actually used.


Not really, I'm not doing selective imports.

I want to be able to use an import symbol that contains a whole 
crapload of imports. Which, the only way now is to create a 
separate file and public import all those imports one wants, then 
use that file and name it.


test.d

import _gtk = crapload;
import _gdk = crapload2;

crapload.d

public import gtk.TreeView;
public import gtk.Window;



crapload2.d

public import gdk.Window



But this requires creating files for every one group one wants.

It would be much nicer and easier, and it is easy if D added the 
language feature, to do


import _gtk = {gtk.TreeView, gtk.Window, ... }
import _gdk = {gdk.Window, ... }


The semantics are the same, it is just a rewrite rule 
basically... but all it really solves is not requiring extra 
files, which means keeping track of more junk.


It's not necessarily all that useful if one uses such imports all 
the time since it would bloat the files, But we could then add 
some wildcards:


import _gtk = gtk.*;
import _gdk = gdk.*;

which would be functionally the same but far less verbose.


But as it stands now, there is only one way to do that and that 
way is the most verbose and hardest to maintain... that really 
isn't acceptable when it is such an easy problem to fix and 
doesn't have any downside in implementing it.









Stefan Koch: New CTFE fix

2017-08-14 Thread Johnson Jones via Digitalmars-d

Hi Stefan,

I have a suggestion/request for you for newCTFE:

string do()
{
   string x;
   x = "adsf";
   pragma(msg, x);
   return x;
}

fails because the compiler believes that x is not known at 
compile time. It obviously is when do is ran as a ctfe. This 
makes some types of programming difficult to debug because we 
have to duplicate any instance of "do" and cannot output 
intermediate values.


But, how can we make this actually work?

One way may be to treat all strings as enums internally and allow 
normal string operations on them, effectively creating a 
string_enum type.


In fact, maybe a new type would be the easiest way. string_enum 
is a string at runtime but an enum with string operations at 
compile time. (for memory efficiency they could be more like 
string builders)



Another possible way is for the compiler to emit the pragma(msg, 
x) as sort of writelns. i.e., ctfe_writeln, which if I recall, 
hasn't been added yet.


Then we end up something like

string do()
{
   string x;
   x = "adsf";
   ctfe_writeln(x);
   return x;
}

which either could immediately display x if possible, or the 
compiler could collect all output then display after the function 
is called(issues are that errors might break the output).


I'm sure other solutions are possible. pragma(msg, ) could act 
different depending on if it is use on a variable that is used 
inside a ctfe vs a compile time "variable" used inside a ctfe.


Maybe your newCTFE already has the ability to do this or make it 
easy? It would surely help me because I tend to use a lot of 
mixins and generally cannot easily output the results for 
debugging purposes(and since mixins already are nearly impossible 
to debug like normal code, we need something useful to help us 
out).






Import modules too verbose in some cases

2017-08-09 Thread Johnson Jones via Digitalmars-d
Sometimes one doesn't want to import either the whole module nor 
specify a single function to import. It seems that basically D 
has all the info to import the function implicitly because it 
usually gives a nice error message tells us which module to 
import for the function.


e.g.,

A.B.C()

"Did you forget to import module A.B?"

and so we have to do

import A.B;
A.B.C();

Sometimes we still need to specify the fully qualified name due 
to conflicts with other modules.



Rather, how about a new feature were we do not have to import 
modules at all by specifying the fully qualified name? Since 
conflicts might occur, how bout using a symbol to express that?


#A.B.C();

or

@A.B.C();

or

$A.B.C();

same as

import A.B;
A.B.C();


So, for one offs we don't have to write the import statement.





Re: GC operates in LIFO sequence?

2017-08-09 Thread Johnson Jones via Digitalmars-d

On Wednesday, 9 August 2017 at 17:38:15 UTC, Swoorup Joshi wrote:
On Wednesday, 9 August 2017 at 15:47:17 UTC, Guillaume Piolat 
wrote:

On Wednesday, 9 August 2017 at 13:46:29 UTC, MGW wrote:
Memory allocation and deallocation when an application is 
being completed in GC operates in FIFO sequence.
Is there a possibility to shift GC memory deallocation to 
LIFO mode?


It`s connected with the fact that GUI library (Qt) creates 
QApplication first,
but GC destroys this object first when an application is 
being completed. This leads to the application failure.
If the sequence of memory deallocation on LIFO is shifted, it 
will essentially simplify the cooperation with C++ libraries.


https://p0nce.github.io/d-idioms/#The-trouble-with-class-destructors


Is garbage collection even useful besides managing memory?


Of course! Once a week it is useful! Else things start piling up 
and getting really smelly! Not very healthy!




Re: ModuleInfo Error

2017-08-09 Thread Johnson Jones via Digitalmars-d

On Wednesday, 9 August 2017 at 22:00:56 UTC, Adam D. Ruppe wrote:
On Wednesday, 9 August 2017 at 21:29:07 UTC, Johnson Jones 
wrote:
I routinely get this error when I forget to add a module that 
I import to the project.


You learn it pretty quickly though, don't you?



no ;/ I have a memory like a rock. Which is either infinite or 
zero ;/ I tend to do a lot of things and after months of not 
seeing something I tend to flush my cache. Specially if I don't 
program in D for a while. It's one thing when you do something 
every day but when you do things in squirts, you tend to memorize 
what you need to know for that purpose then soon forget when you 
no longer need it.



I guess this is due to the fact that the module does not have 
a library backing and the __ModuleInfo function isn't 
generated for it so it doesn't exist anywhere? (Just guessing)


Yeah, basically. __ModuleInfo isn't a function, rather it is a 
block of static data telling the runtime where its static 
ctors, dtors, unittests, etc. are, but same idea.


When you compile a .d file, the module info is automatically 
generated and put in the file with the functions you write.


When you import a module, the compiler emits a reference to 
that moduleinfo so it can run its static ctors, etc., if 
present in your program.


Importing a module without linking in its library or object 
file causes the error you see.
Surely we could get a better error message for this or dmd 
could somehow try and automatically remedy the situation?


So it technically isn't actually dmd generating that error... 
it happens at the link step, after dmd is done. Though dmd 
could parse the linker output and replace it with different 
text... but that is a pretty big pain and like I hinted above, 
this is the kind of thing you might be slightly baffled by the 
first time, but quickly learn what it means so the ongoing cost 
is pretty small.


Replacing the text from the linker isn't just a one time 
implementation either: it'd have to keep up with changes from 
other linkers or version updates, and would likely break any 
special output (such as colors) that it tries to do.


However...

If so, why not keep track of all the modules that have bee 
used and if this error occurs, compile the module or do 
whatever needs to be done so the error is not necessary?


...that's what rdmd does. I think it is distributed with the 
compiler.


dmd itself doesn't do that though since a valid use case (and 
fairly common with dmd's corporate users) is to compile and 
link separately, like people do with C++, to improve working 
with their complex build systems (speed, external assets, 
proprietary libraries, etc. don't work as well with my 
preferred "dmd *.d" strategy so they make it fancy af), so 
automatically compiling everything would actually be a step 
backward for those people.


But you might want to try using rdmd. You just pass it the 
function with main and it figures out the rest by walking the 
import path, then calls dmd to actually compile.


New users to D will be thrown by this error. It is meaningless 
as far as being helpful and there is virtually no online help 
for it...


It is a FAQ... though cannot easily be found. Maybe you (or 
someone else) should ask on SO and put an answer up there so we 
can start linking to that?


Well, I use Visual D and not sure if it can use rdmd(I'm sure it 
can be hacked) . Is there any benefits or downsides to doing this?


I guess it's not a huge deal at the end of the day... but stuff 
like this just shouldn't be an issue. Are we going to be dealing 
with such things 50 years down the road? (well, not us, but the 
next generation?)  I find most of the problems that we have(not 
just as programmers, but as human beings) tend to be because 
people cannot cut ties with the past and learn from their 
mistakes.  Do we even need to separate the linker and compiler? 
Shouldn't they be able to communicate with each other internally 
to get the most information they can to make our lives easier? A 
simple switch could be used to separate linking and compiling. I 
feel that "modern" programming is still trapped in the past and 
we all ultimately suffer from it. Most people just don't realize 
how much better it could be. How many people have quit using D 
because of all the issues it has or simply because it doesn't 
have the momentum to carry them through life? I've seen a couple 
recently simply cut ties. They wouldn't have to do this if they 
could make a living using D, which means that D is has failed 
them, which is sad  ;/ I don't think the powers at be really 
comprehend those things as they have don't have to worry nor 
experience those things to understand... hence, there is no 
motivation to get D on the right footing so it is not such a 
problem. An unfortunate set of circumstances.


Anyways, I'll just try to remember, ranting about that stuff 
makes it stick in my mind better I guess, and at least a forum 
search 

ModuleInfo Error

2017-08-09 Thread Johnson Jones via Digitalmars-d
I routinely get this error when I forget to add a module that I 
import to the project. It throughs me for a loop because the 
error doesn't really make sense for what is actually wrong(or 
does it?):



Error 42: Symbol Undefined _D9DLLImport12__ModuleInfoZ 
(DLLImport.__ModuleInfo)


Adding DLLImport.d to the project solves the problem. I'm using 
Visual D so I guess adding the file to the project adds it to the 
includes on the command line.


I guess this is due to the fact that the module does not have a 
library backing and the __ModuleInfo function isn't generated for 
it so it doesn't exist anywhere? (Just guessing)


Surely we could get a better error message for this or dmd could 
somehow try and automatically remedy the situation?


What is __ModuleInfo? An automatically generated function for a 
module by dmd when a module is compiled? If so, why not keep 
track of all the modules that have bee used and if this error 
occurs, compile the module or do whatever needs to be done so the 
error is not necessary?


New users to D will be thrown by this error. It is meaningless as 
far as being helpful and there is virtually no online help for 
it... and one doesn't get this for standard stuff like phobos 
modules, again, I guess because they have a library that has 
these functions in it. I'm pretty sure dmd could auto detect this 
issue and try to resolve it internally. I've gotten it several 
times in different projects in the past.





Re: Did dmd forget how to read?

2017-08-05 Thread Johnson Jones via Digitalmars-d

On Sunday, 6 August 2017 at 00:22:45 UTC, Cym13 wrote:

On Saturday, 5 August 2017 at 23:54:45 UTC, Johnson Jones wrote:
main.d(157): Error: no property 'SetCursor' for type 
'gdk.Window.Window', did you mean 'getCursor'?


um... anyone see bug? It's there, I promise.


"setCursor" exists, but "SetCursor" doesn't (or your "bug" 
depends on code that you wrote and didn't share). I believe as 
both "setCursor" and "getCursor" are one character away from 
"SetCursor" dmd took the first one in alphabetic order or 
something. No need to panic ;)


No one is panicking, so you can stop panicking that you think 
they are panicking.


The point is that setCursor is much closer to SetCursor than 
getCursor. It should prioritize case differences first. SETCURSOR 
should still match setcursor better than getcursor or getCURSOR 
or whatever.


But I'll get you a ascii star for realizing the issue

 /\
<  >
 \/



Did dmd forget how to read?

2017-08-05 Thread Johnson Jones via Digitalmars-d
main.d(157): Error: no property 'SetCursor' for type 
'gdk.Window.Window', did you mean 'getCursor'?


um... anyone see bug? It's there, I promise.




Re: ASCII-ART mandelbrot running under newCTFE

2017-08-04 Thread Johnson Jones via Digitalmars-d

On Friday, 4 August 2017 at 22:50:03 UTC, Stefan Koch wrote:

Hey Guys,
I just trans-compiled a brainfuck mandelbrot into ctfeable D.
newCTFE is able to execute it correctly (although it takes 3.5 
minutes to do so).


The code is here
https://gist.github.com/UplinkCoder/d4e4426e6adf9434e34529e8e1f8cb47

The gist it evaluates the function at runtime since the newCTFE 
version capable of running this, is not yet available as a 
preview release.


If you want a laugh you can compile the code with ldc and -Oz 
flag set.
LLVM will detect that the function is pure and will try to 
constant-fold it.
I do not know how long this takes though since my patience is 
limited.


Cheers,
Stefan



Any screenshots? I don't wanna have to install something I won't 
use but once or twice but would be interested in seeing what is 
going on since I used to be a fractal freak ;)





Re: Who maintains the D website?

2017-08-04 Thread Johnson Jones via Digitalmars-d

On Friday, 4 August 2017 at 09:13:33 UTC, Mike Parker wrote:

On Friday, 4 August 2017 at 06:08:04 UTC, captaindet wrote:
i see you didn't hold your horses... not sure if i should 
reply again to such an angry rant. i will stay calm and 
focused though.


This guy has a history of insulting nearly everyone who 
responds to him, even those who help him, as he has just shown 
again in his last response to you. You can find more of his 
posts under the handles Mike B. Johnson and FoxyBrown. My 
advice to you is, if you'd like to help him, that's fine, but 
don't expect any sort of reasoned debate from him. Long posts 
in response to anything he says are a waste of your time. He 
just doesn't respond well to reason.


Way to go Mr. Professional.  You have a long way to go to grow 
up. You think your you can veil your attitude but it's clear you 
are not a professional. A real professional would simply ignore 
the situation...


And if you note, I only have a problems with a few people here. 
Mainly you and a one or two others... people that think they can 
write the shittiest software and how it effects others is of no 
importance. Instead of giving 100%, it's ok to give 25% and reap 
the benefits while others suffer the consequences. That attitude 
is BS and as long as you have it I will offend the fuck out of 
you all I want. If you don't like it simply ignore me, ban me(if 
you can), or do whatever you want. Until you grow up and stop 
acting like you are god I won't.


You wanna preach but you don't wanna be preached to. I can take 
your BS but you can't take mine. It's a two way street... and 
until you can captain retard get that I won't play nice.


There are plenty of people on here I respect. I'll give the top 
two: Adam Ruppe and H S Teoh. I've not seen any unprofessional 
nor condescending behavior from these guys. They don't pretend to 
know it all and don't preach their BS to others. They help the 
best they can and that is all they do... altruistic people. The 
kinda of human behavior that the world needs, not the kind that 
is destroying humanity(Which, you might not be at the bottom of 
the barrel, but your attitude is the same type that politicians, 
lawyers, and others have).


I'm sorry if you can't grow up and act like those guys... maybe 
you should take notes from them and see how they act. Maybe you 
will stop being such an ass when you don't realize it because you 
think your such an intelligent person, authority, or simply too 
much ego... whatever it is, I'll make a point of pissing you off 
every time I get until you stop behaving that way.


Your actions have consequences. The code you write has 
consequences. The "help" you give has consequences. When you stop 
dictating to other people how you *think* things should be and 
realize that it is just your opinion then we will get a long much 
better.


Until then, later asshole.


Re: [OT] - A hacker stole $31M of Ether — how it happened, and what it means for Ethereum

2017-08-04 Thread Johnson Jones via Digitalmars-d

On Friday, 4 August 2017 at 05:57:00 UTC, Nick B wrote:
See - 
https://medium.freecodecamp.org/a-hacker-stole-31m-of-ether-how-it-happened-and-what-it-means-for-ethereum-9e5dc29e33ce


But can a digital wallets/crypto currency ever be secure  ?



Nope... as long as humans continue to build house of cards on 
quicksand this sort of stuff will always happen. You do realize 
it's all fake nonsense? If the only sort of currency that existed 
was what you could immediately do with your own body, then it 
would be impossible to ever steal anything(except for slavery, 
which is essentially still fake).


Basically this is how the story goes: Someone comes up with some 
scheme to gather resources from others. The scheme is complex and 
designed in such a way that only those that have created the 
scheme or invested enough time to understand the scheme benefit 
from all those that don't but were to stupid not to buy in to the 
scheme.


Eventually those at the top win. It's called a pyramid scheme and 
it exists in all forms of currency, employment, governments, even 
in most relationships, etc.


Only when all participants equally share complete responsibility 
can the scheme be fair... but that never happens, too much to 
gain when it becomes unbalanced... and the more unbalanced it 
becomes the more those that unbalance it get.


I wouldn't doubt that most of these people who create these 
currencies are the ones that ultimately are behind these thefts. 
After all, they are the ones that know most about it and why else 
would they spend their time developing it? For the benefit of 
human kind? Yeah right! What a joke!






Re: Who maintains the D website?

2017-08-04 Thread Johnson Jones via Digitalmars-d

On Friday, 4 August 2017 at 06:08:04 UTC, captaindet wrote:
i see you didn't hold your horses... not sure if i should reply 
again to such an angry rant. i will stay calm and focused 
though.




How pathetic, you are not worth my time. Seeing how you equate 
accuracy with typos and insecurity shows just how ignorant you 
are. Go bait someone else. Sorry that your life is so pathetic... 
but I'm sure it's your own fault.




Re: Who maintains the D website?

2017-08-03 Thread Johnson Jones via Digitalmars-d

On Friday, 4 August 2017 at 00:52:34 UTC, captaindet wrote:

On 2017-08-04 12:13, Johnson Jones wrote:
No, sorry. The lead team uses nttp which is old school forum 
technology.
They won't move in to the present and instead insist everyone 
else stay
in the past with them. It's sort of like those guys that drive 
1970's
camaro's because they think it makes them look cool. I'm sure 
it's a

psychological condition but not much can be done about it.


hold your horses!

quite a number of users incl myself prefer nttp. nice as the 
forum web interface is, following a newsgroup with a newsgroup 
reader like eg the thunderbird built-in is way more 
comfortable, you should try it one day. eg: you don't have to 
sign in, can reply immediately, you can customize 
display/behaviour more thoroughly to your liking, and more.


/det


It's not! I've used nntp and it crap. You cannot edit your posts, 
simple as that! You can claim all you want that your method is 
better but it doesn't make it so.  Just based on human nature and 
the fact that you are saying with an ancient archaic system 
suggests it's all based in fear of change. The sad part about 
this is that it forces everyone else to stay in the same broken 
system.


How about this: Dlang.org keeps the old interface like nntp and 
adds a new one. Anyone that wants to continue to use the old one 
can and those that one to use the new one can. In a year we can 
see which one is the most popular and let everyone decide rather 
than a few old crusty goats.


Of course, it won't happen because those in power know the 
outcome. You can see how nntp is dead. There are few nntp servers 
and most of the groups are dead and only those that used in in 
the past still use it. There is not a migration towards nntp but 
away, and that is fact... which suggests that it is not as good 
as its opposition. Hence, if I'm right, and I almost surely 
am(surely you are not going to argue that nntp is becoming more 
popular, are you?) then those that think that nntp is a great 
thing and better than the alternatives have psychological issues 
with change.


You can make a forum that behaves similarly(no login), 
customizable, or whatever else you are saying that you like about 
nntp.


In fact, someone could write a nntp like interface for the forum 
in D just so to please you guys.


I personally have nothing against nntp... while it isn't great it 
does the job EXCEPT editing. I know people claim that editing 
posts causes problems but that is rarely the case and the 
benefits far out weight any negatives.


The reasons not to move forward are the same reasons that plague 
humans in many other areas and it is all 
psychological/evolutionary reasons rather than based on logic and 
facts. Familiarity is a prime factor. Many humans, specially 
older ones, fear change because it is unfamiliar and unknown. 
Those factors are the same that are at play here and it is 
unfortunate because I imagine there would be a lot more younger 
users that have the motivation to help D gain traction that do 
not participate because they feel like it is a step backwards 
rather than forwards.



One day all the old fogies will die and nntp will be gone.. and 
some young kid interested in D will start a modern D forum and 
maybe D will get back on track.


Think of it this way: D claims to be this sort of futuristic 
compiler(it can do thinks "light years" ahead of most other 
compilers...) yet it uses communications methods that are 50 
years old. That's a bit contradictory. It's like a young pretty 
woman who dresses like a skank and wears so much make up that it 
makes her look 20 years older than what she is. While she might 
think she looks good, the people that actually look at her think 
otherwise. This is sorta what happens with D. It's amazing in 
some ways but has so much baggage in so many areas that many 
people are not going to waste their time. The D community can be 
delusional all they want, but it just works against them instead 
of allowing D to really shine.












Re: Who maintains the D website?

2017-08-03 Thread Johnson Jones via Digitalmars-d

On Thursday, 3 August 2017 at 23:28:36 UTC, 12345swordy wrote:
On Thursday, 3 August 2017 at 00:18:38 UTC, Andrej Mitrovic 
wrote:
Is there a single person who's the main maintainer of the D 
website..?



If not, I have some ideas on how to improve it. Not just 
ideas, I'd like to give a host at improving it myself, really.


Can we gain the ability to edit our own post? I typically make 
some grammar/spelling mistacks here and there and it would be 
nice for me to fix this.


No, sorry. The lead team uses nttp which is old school forum 
technology. They won't move in to the present and instead insist 
everyone else stay in the past with them. It's sort of like those 
guys that drive 1970's camaro's because they think it makes them 
look cool. I'm sure it's a psychological condition but not much 
can be done about it.