Re: Little demo of allowing basic types to implement interfaces.
On Wednesday, 4 September 2013 at 00:56:55 UTC, Rory McGuire wrote: I was wondering if its possible to do interfaces the way #golang does it but in #dlang. Here is my first try: https://gist.github.com/rjmcguire/6431542. Any help on making this smaller would be awesome. Cheers, R Here is another example use, checking if a type can convert itself to ubyte[]: void main() { int i = 0x34342343; writebytes(i); } interface IRawBytes { ubyte[] bytes(); } void writebytes(T)(T item) if (Implements!(T, IRawBytes)) { import std.stdio : writeln; writeln(item.bytes); } ubyte[] bytes(ref int i) { ubyte* ptr; ptr = cast(ubyte*)i; return ptr[0..i.sizeof]; } In the above example you get a nice error message if int does not have the bytes ufcs function. missing: ubyte[] int.bytes() int, does not implement interface: traits.IRawBytes traits.d(18): Error: template traits.writebytes does not match any function template declaration. Candidates are: ...
Re: Little demo of allowing basic types to implement interfaces.
On Wednesday, 4 September 2013 at 06:26:08 UTC, Rory McGuire wrote: On Wednesday, 4 September 2013 at 00:56:55 UTC, Rory McGuire wrote: I was wondering if its possible to do interfaces the way #golang does it but in #dlang. Here is my first try: https://gist.github.com/rjmcguire/6431542. Any help on making this smaller would be awesome. Cheers, R Here is another example use, checking if a type can convert itself to ubyte[]: You can play with it here: http://dpaste.dzfl.pl/d7a727fd I still need to implement the part that checks aggregates.
Re: Little demo of allowing basic types to implement interfaces.
yes, it does seem to break if the Implements template func is in a different module to the free standing func. hmph, how to get around that. On Wed, Sep 4, 2013 at 9:04 AM, Tobias Pankrath tob...@pankrath.net wrote: On Wednesday, 4 September 2013 at 00:56:55 UTC, Rory McGuire wrote: I was wondering if its possible to do interfaces the way #golang does it but in #dlang. Here is my first try: https://gist.github.com/**rjmcguire/6431542https://gist.github.com/rjmcguire/6431542 . Any help on making this smaller would be awesome. Cheers, R Will this break, if I implement the free standing functions in a different module that is not in scope of the Implements! template?
Re: Little demo of allowing basic types to implement interfaces.
On Wednesday, 4 September 2013 at 08:44:45 UTC, Rory McGuire wrote: yes, it does seem to break if the Implements template func is in a different module to the free standing func. hmph, how to get around that. I don't think it is possible. You can possibly have several modules with free standing functions with same signature which will match UFCS - how one may determine in general case which one to check against? Only way is to locally clone imports from the scope `Implements` is called from and I am not aware of any mechanism to do it. Well, one can always switch to string mixins of course and invade caller scope but that is not clean by any means.
Re: Little demo of allowing basic types to implement interfaces.
On Wednesday, 4 September 2013 at 08:56:10 UTC, Rory McGuire wrote: A template should get evaluated in the calling context. No, in D templates use declaration scope (unless they are template mixins).
Re: Little demo of allowing basic types to implement interfaces.
thanks, yes, I just found that in TDPL. knew it was templates but forgot about template mixins. Do you know how to get a default parameter like __MODULE__ or __LINE__ to be used from the calling site? I've tried but I think my DMD is broken because it doesn't even work when I subclass Exception(). On Wed, Sep 4, 2013 at 11:02 AM, Dicebot pub...@dicebot.lv wrote: On Wednesday, 4 September 2013 at 08:56:10 UTC, Rory McGuire wrote: A template should get evaluated in the calling context. No, in D templates use declaration scope (unless they are template mixins).
Re: Little demo of allowing basic types to implement interfaces.
On Wednesday, 4 September 2013 at 09:23:44 UTC, Rory McGuire wrote: thanks, yes, I just found that in TDPL. knew it was templates but forgot about template mixins. Do you know how to get a default parameter like __MODULE__ or __LINE__ to be used from the calling site? I've tried but I think my DMD is broken because it doesn't even work when I subclass Exception(). Special tokens like __LINE__ in default parameters are evaluated at the call site: http://dpaste.dzfl.pl/f7b9dfcf It does not help though, because you don't need __MODULE__ of the call site, you need list of modules it has imported in exact call scope.
Re: Little demo of allowing basic types to implement interfaces.
Thanks, the exact example is exceptions. Was working really late the day that it wasn't working :D my bad. The following is what I was after, which I really thought I had tried. class BaseException : Exception { this(string s=, string file = __FILE__, int line = __LINE__) { super(s, file, line); } } On Wed, Sep 4, 2013 at 11:33 AM, Dicebot pub...@dicebot.lv wrote: On Wednesday, 4 September 2013 at 09:23:44 UTC, Rory McGuire wrote: thanks, yes, I just found that in TDPL. knew it was templates but forgot about template mixins. Do you know how to get a default parameter like __MODULE__ or __LINE__ to be used from the calling site? I've tried but I think my DMD is broken because it doesn't even work when I subclass Exception(). Special tokens like __LINE__ in default parameters are evaluated at the call site: http://dpaste.dzfl.pl/f7b9dfcf It does not help though, because you don't need __MODULE__ of the call site, you need list of modules it has imported in exact call scope.
Re: Little demo of allowing basic types to implement interfaces.
I have a basic solution but it can't handle basic types LOL! you have to typedef them so that moduleName!T works. and then the functions have to be declared in the same module as the type. Or alternatively you have to specify the module to use e.g. Implements!(T,MyInterface, mymodule). http://dpaste.dzfl.pl/cff0ca5a I had to hard code the module name because dmd segfaults if you use __MODULE__ in the contraint. Both references to asdf should be changed to the module you are using. On Wed, Sep 4, 2013 at 11:48 AM, Rory McGuire rjmcgu...@gmail.com wrote: Thanks, the exact example is exceptions. Was working really late the day that it wasn't working :D my bad. The following is what I was after, which I really thought I had tried. class BaseException : Exception { this(string s=, string file = __FILE__, int line = __LINE__) { super(s, file, line); } } On Wed, Sep 4, 2013 at 11:33 AM, Dicebot pub...@dicebot.lv wrote: On Wednesday, 4 September 2013 at 09:23:44 UTC, Rory McGuire wrote: thanks, yes, I just found that in TDPL. knew it was templates but forgot about template mixins. Do you know how to get a default parameter like __MODULE__ or __LINE__ to be used from the calling site? I've tried but I think my DMD is broken because it doesn't even work when I subclass Exception(). Special tokens like __LINE__ in default parameters are evaluated at the call site: http://dpaste.dzfl.pl/f7b9dfcf It does not help though, because you don't need __MODULE__ of the call site, you need list of modules it has imported in exact call scope.
Re: Little demo of allowing basic types to implement interfaces.
On Wednesday, 4 September 2013 at 10:33:26 UTC, Rory McGuire wrote: I have a basic solution but it can't handle basic types LOL! you have to typedef them so that moduleName!T works. Of course it can't, built-in types don't have any owning module, those are not symbols. Why would you want to care about basic types anyway?
Re: Little demo of allowing basic types to implement interfaces.
yip, :) can't think of a reason except it was interesting. wish dmd didn't segfault when I used __MODULE__. on the plus side the requirement for a non basic type is the same requirement that #golang has on its interfaces. On Wed, Sep 4, 2013 at 12:48 PM, Dicebot pub...@dicebot.lv wrote: On Wednesday, 4 September 2013 at 10:33:26 UTC, Rory McGuire wrote: I have a basic solution but it can't handle basic types LOL! you have to typedef them so that moduleName!T works. Of course it can't, built-in types don't have any owning module, those are not symbols. Why would you want to care about basic types anyway?
Re: specd - write more expressive unit tests
It would be nice to have something like result.must.not.be!(42); So, have a look at 'assertOp': http://d.puremagic.com/issues/show_bug.cgi?id=4653 How can a user of your code add matchers, for example, to check for elements or attributes in XML? (Without having to change your code.) The hidden 'MatchStatement' makes the code easy to use but seems to make it hard to extend. You could add a second ('matcher') parameter to 'must', but then you have to switch from '.' to '('...')': result.must(haveTag(root)); By the way: Does the color output work on Windows? Here is what I do to color the unit-test results: https://github.com/linkrope/dunit/blob/master/dunit/color.d
Re: Little demo of allowing basic types to implement interfaces.
On 2013-09-04 13:01, Rory McGuire wrote: yip, :) can't think of a reason except it was interesting. wish dmd didn't segfault when I used __MODULE__. on the plus side the requirement for a non basic type is the same requirement that #golang has on its interfaces. Do you have a module declaration? -- /Jacob Carlborg
Re: Little demo of allowing basic types to implement interfaces.
Thanks! a module declaration gets around that one. http://dpaste.dzfl.pl/cff0ca5a line 21 On Wed, Sep 4, 2013 at 1:18 PM, Jacob Carlborg d...@me.com wrote: On 2013-09-04 13:01, Rory McGuire wrote: yip, :) can't think of a reason except it was interesting. wish dmd didn't segfault when I used __MODULE__. on the plus side the requirement for a non basic type is the same requirement that #golang has on its interfaces. Do you have a module declaration? -- /Jacob Carlborg
Re: Little demo of allowing basic types to implement interfaces.
On 2013-09-04 13:57, Rory McGuire wrote: Thanks! a module declaration gets around that one. http://dpaste.dzfl.pl/cff0ca5a line 21 I think this should already be fixed in git HEAD. -- /Jacob Carlborg
Re: specd - write more expressive unit tests
On Tuesday, 3 September 2013 at 06:36:20 UTC, Jacob Carlborg wrote: On 2013-09-02 21:03, jostly wrote: specd is a DSL library allowing you to write more expressive unit tests. It is inspired by projects like specs2 and ScalaTest from the Scala world. Example: unittest { describe(a string) .should(have a length property, foo.length.must.equal(3)); } Features: * DSL for expressing unit tests as specifications * Verify with must instead of assert * Report successful / failed tests using green / red paradigm Available as a dub dependency (specd) or from https://github.com/jostly/specd Comments and suggestions for improvement are welcome! I've been working on something similar myself. https://github.com/jacob-carlborg/dspec Narrowly avoided nameclash there. :) Good to see others thinking along the same lines. I'm working on a new syntax using UDA's, shown here: https://github.com/jacob-carlborg/phobos/blob/serialization/std/serialization/tests/array.d Looks interesting. I hadn't heard of the UDA's before, they seem quite powerful from a brief glance.
Re: specd - write more expressive unit tests
On Wednesday, 4 September 2013 at 11:06:45 UTC, linkrope wrote: It would be nice to have something like result.must.not.be!(42); So, have a look at 'assertOp': http://d.puremagic.com/issues/show_bug.cgi?id=4653 How can a user of your code add matchers, for example, to check for elements or attributes in XML? (Without having to change your code.) The hidden 'MatchStatement' makes the code easy to use but seems to make it hard to extend. You could add a second ('matcher') parameter to 'must', but then you have to switch from '.' to '('...')': result.must(haveTag(root)); By the way: Does the color output work on Windows? Here is what I do to color the unit-test results: https://github.com/linkrope/dunit/blob/master/dunit/color.d Thanks for the feedback and the pointers - I think they're all good ideas. I'll look into making the necessary adjustments.
Re: specd - write more expressive unit tests
On 2013-09-04 19:38, jostly wrote: Looks interesting. I hadn't heard of the UDA's before, they seem quite powerful from a brief glance. Very simple but very powerful. It's basically way to tag symbols with values/types. -- /Jacob Carlborg
FewDee: A library for 2D game prototyping
Hello, FewDee is an incomplete, experimental, mostly 2D, library focused on games prototyping. The official Mercurial repository is here: https://bitbucket.org/lmb/fewdee And there is a Git mirror here: https://github.com/lmbarros/FewDee This is work in progress. It is usable(*), but still needs lots of improvements. (*) I used an early version of FewDee in a prototype that worked even in a public demonstration ;-) I wasn't afraid of using D any features in FewDee, so I used (and even misused) lots of associative arrays, delegates, GC'ed memory... it might be interesting to see how it will behave in more demanding applications. My plan now is to stop working directly on FewDee; instead, I intend to actually use it in a few more game prototypes. Then, I'll use this experience to further guide the library evolution. Lastly, this is my first sizable D project, so destroy with kindness ;-) Cheers, LMB
Re: Top Github Languages for 2013 (so far)
On 4 September 2013 06:02, Peter Alexander peter.alexander...@gmail.com wrote: On Tuesday, 3 September 2013 at 17:09:04 UTC, Michael wrote: On Tuesday, 3 September 2013 at 13:13:11 UTC, Elvis wrote: http://adambard.com/blog/top-github-languages-for-2013-so-far/ GitHub is GitHub only ;) SourceForge Index: 21, TIOBE Index: 22. They measure different things. The SourceForge Index and TIOBE measure (or at least attempt to measure) how popular a language is in terms of volume of discussion (Google hits, blog mentions etc.) GitHub repo counts is an attempted measure of how much the language is actually used. These are very different things. I imagine D does well in discussion largely due to the amount Walter and Andrei bombard reddit with links. a.k.a. Walterbot and Andralexbot. -- Iain Buclaw *(p e ? p++ : p) = (c 0x0f) + '0';
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 02:53, Nick Sabalausky wrote: The current status: --- - OSX 10.7: Works fine. (At least it did last time I tried it, a couple weeks ago. It *could* have regressed but I won't have access to the machine again until maybe Sunday.) I can test it on Mac OS X 10.8. Are you building a universal binary of the libraries? - Debian 6 (32-bit OS): This tool isn't intended to support 32-bit OSes (since it must compile both 32-bit and 64-bit phobos), but it works fine up until it gets to the 64-bit stuff. If I manually comment out the 64-bit stuff, then everything else works fine. Why don't you just version that out? - Debian 6 (64-bit OS): It fails when linking the 32-bit phobos complaining that it can't link with libcurl. I'm fairly certain this is because I have no freaking idea how to install the 32-bit libcurl*-*-dev on a 64-bit Debian. (I *did* install libcurl4-openssl-dev, but I'm pretty sure it only installed for 64-bit. And I can't figure out how to get the 32-bit.) Using apt-get install package:architecture as suggested here: https://wiki.debian.org/Multiarch/HOWTO Requires Debian 7.0 or later. For Debian 6, install the the packages gcc-multilib and ia32-libs. - FreeBSD 9.1 (32-bit OS): Same as 32-bit Debian 6: It works, except for the 64-bit stuff. - FreeBSD 9.1 (64-bit OS): No idea, I don't have access to a 64-bit FreeBSD machine, and my stupid Intel CPU lacks the ability to run a 64-bit OS in a VM. I can give you a help with this, if no one else beats me. - Windows 7 (64-bit OS): This is where I'm having the biggest trouble. I can coaxing it to handle v2.063.2 just fine (ie, if I update the tools makefiles as described above, and comment out all the libcurl and chm stuff.) However, on master, after it compiles DMD/druntime/phobos, the resulting DMD/phobos can't compile anything that uses phobos because OPTLINK will spew out a bunch of errors. I am *completely* at a loss on this one. It seems like an sc.ini issue, but I've spent days checking everything and I still can't make heads or tails of it. -- /Jacob Carlborg
Re: Linking C extern(C) on OS X: duplicate symbols not flagged
On 2013-09-04 00:36, Luís Marques l...@luismarques.eu wrote: Sorry for the delay. Using LDC fails, as expected / desired: duplicate symbol _dotest in: d/test.o c/test.o ld: 1 duplicate symbol for architecture x86_64 The LDC .o sections are the same as the C version: $ nm d/test.o | grep dotest; echo --; nm c/test.o | grep dotest T _dotest 00b0 S _dotest.eh -- T _dotest 0060 S _dotest.eh I haven't tried GDC (I get the object.d not found error, even after installing the D .dmg package, instead of using brew, and I don't recall how I used to solve that), but I imagine it would also fail-work (detect the duplicate symbol, and fail compilation). Perhaps time to file a bug report. I don't know if there's a reason to not use the same sections as C does. http://d.puremagic.com/issues/ -- /Jacob Carlborg
Re: Had another 48hr game jam this weekend...
On 2013-09-03 22:30, Ramon wrote: Here is my current resumee: - dmd not debuggable - not an acceptable solution, no matter how fast it compiles. - gdc possibly still buggy (Disclaimer: Probably it was just bad luck that I fell over a bug (not even an important one) and am a little wary now - No offense intended. I'm immensely grateful that with gdc there is an alternative and, even better, GDB *works* with gdc - hurray!!) - gdc (2): I have to either use an old version (4.63) or build it myself along with gcc, which is a major hurdle -ldc not yet tried. Dunno. Have you tried LDC? Major problem: No readily available mechanism (I know of and would trust/use) to 2/4 automate C lib binding. I think I have already said this, but there's DStep: https://github.com/jacob-carlborg/dstep Don't know if you would trust/use it though. -- /Jacob Carlborg
Re: Had another 48hr game jam this weekend...
On 2013-09-03 23:00, Nick Sabalausky wrote: The corporate-owned United States makes it very difficult to get hold of those. Just import one from Europe (is that legal?), although that will probably not be cheap. FWIW, Best bet is to get a budget player from a company that doesn't produce movies (Sony is the absolute worst.) Those are more likely to have a hidden disable region setting you can do a web search for. The $20 CyberHome players my dad and grandmother both have are currently unlocked and will play discs that are both wrong region *and* PAL-resolution. But there isn't chance in hell I'll ever be able to do *either* of those with my PS3 or any other big-name player. Yeah, I forgot about the DMCA. And no, it will most likely not work in a PS3. I'm wondering if it works in a PS3 here... -- /Jacob Carlborg
Re: [OT]: Memory Performance
On 2013-09-03 23:10, Chris wrote: The machine I was looking at is this one: https://www.system76.com/laptops/model/gazp9# A laptop! Buy parts a build your own desktop :) -- /Jacob Carlborg
Re: Had another 48hr game jam this weekend...
On 2013-09-03 23:57, Nick Sabalausky wrote: If web logins are such a terrible chore, just use any of the many, many existing tools for managing logins. FF has one built-in, and I'm sure many others do, too. IIRC, OSX even has one at built in at the operating system level. Security-wise, some of these may not be perfect either, but at least they're not so ridiculously easy to phish and cracking them requires access to your actual machine. Yes, Mac OS X has the keychain. -- /Jacob Carlborg
Re: Top Github Languages for 2013 (so far)
I'm new to D, from what I read in Reddit these days, it's really really bad that D's supporter always claim that D support Manual Memory Management and GC can be disabled , despite the truth that druntime/phobos are parts of D to an end user! I dislike GC but I dislike misleading much more!
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 02:53, Nick Sabalausky wrote: Here's what I have right now (it's named create_dmd_release): https://github.com/Abscissa/installer/tree/create-zip The how to documentation is at the top of the source file: https://github.com/Abscissa/installer/blob/create-zip/create_dmd_release/create_dmd_release.d A couple of issues/questions: * Mac OS X uses dylib as the extension for dynamic libraries * On Mac OS X Xcode is required. It's possible to just download the command line tools but I don't think that has been verified to work * --combine-zip (Posix-only) Combine all platform-specific archives in current directory into cross-platform zip archive. Cannot be used on Windows because the symlinks would be destroyed. Implies --skip-package. Can't zip for Windows handle symlinks? Windows Vista (I think) and later supports symlinks. * The extra files should be put under version control * Does this builds a release for FreeBSD 64bit? If not, it should -- /Jacob Carlborg
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 02:53, Nick Sabalausky wrote: tl;dr: The main things I need help with: Installing 32-bit libcurl on 64-bit Debian, testing on 64-bit FreeBSD, and figuring out WTF is so screwed up on Windows. It's almost finished, but I've hit some problems I'm having a hell of a time figuring out. I'm getting a kinda brain-fried and need some help with it: Here's what I have right now (it's named create_dmd_release): https://github.com/Abscissa/installer/tree/create-zip The how to documentation is at the top of the source file: https://github.com/Abscissa/installer/blob/create-zip/create_dmd_release/create_dmd_release.d I would be nice if I could pass the -j flag to make, or if it could do that automatically. It can save quite a lot of time when compiling DMD. -- /Jacob Carlborg
Re: *Should* char[] be an output range?
On Wednesday, 4 September 2013 at 05:00:58 UTC, Jonathan M Davis wrote: The main problem has to do with what you do when there's not enough room to write to it. Even checking the length isn't enough, because it's unknown ahead of time whether a particular code point (or string of characters if calling put with multiple characters) will fit - at least not without converting the character to UTF-8 first, which would incur additional cost, since presumably that would result in it being converted twice (once to check and once when actually putting it). Of course, it's a problem in general with output ranges that we haven't defined how to check whether put will succeed or what the normal procedure is when it's going to fail. My first suggestion for that would be to make it so that put returned whether it was successful or not, but it's something that probably needs to be discussed. However, with that problem solved, it may be reasonable to make char[] an output range. But until we sort out some of the remaining details of output ranges (most particularly how to deal with put failing, but there are probably other issues that I'm not thinking of at the moment), I don't think that it's a good idea to change how char[] is treated, since how all of that is sorted out could have an effect on what we do with char[]. - Jonathan M Davis Thanks for your reply. Yeah, the debate always boils back down to what are arrays/input ranges output ranges, and what do we do when they are full (eg empty), and can we even detect it. I think that given your answer, I will simply *not* make them output ranges, but I *will* make sure that making them as such is easy. FYI (but it might need a little bit more work), I think I may be on to something. In my implementation, I defined a private function called doPut. doPut is basically the last atomic operation in the put functionality. Given a sink s, and an element e, it calls exactly the correct call of : s.put(e); s.front = e; s(e); It does *not* iterate over e, if it is a range. It does *not* attempt to check [e], and it does *not* transcode e. What this means is that basically, if you write doPut(s, e), then you are putting *exactly* the single element e into s. It means the s is a native output range for e: It doesn't need any help from put. From there, I defined the package trait isNativeOutputRange(S, E). If a pair S/E verify this Native variant of isOutputRange, then the user has the *guarantee* that put(s, e) will place *exactly* e into s. This is particularly interesting for: 1. InputRanges: if the range is not empty, the *put* is guarateed to not overflow. 2. Certain format functions, such as std.encoding.encode(C, S)(dchar c, S sink), will transcode c into elements of type C, and place them in the output range S. Here, it is *vital* that no transcoding happen. My doPut/Native trait help guarantee this. Well, right now, it is only used as private implementation detail, but it works pretty good. It might be worth investigating in more details if we want this public?
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 02:53, Nick Sabalausky wrote: tl;dr: The main things I need help with: Installing 32-bit libcurl on 64-bit Debian, testing on 64-bit FreeBSD, and figuring out WTF is so screwed up on Windows. It's almost finished, but I've hit some problems I'm having a hell of a time figuring out. I'm getting a kinda brain-fried and need some help with it: Here's what I have right now (it's named create_dmd_release): https://github.com/Abscissa/installer/tree/create-zip The how to documentation is at the top of the source file: https://github.com/Abscissa/installer/blob/create-zip/create_dmd_release/create_dmd_release.d Why are you using HTTPS when cloning and not SSH? If I'm not mistaken the latter is faster. -- /Jacob Carlborg
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 02:53, Nick Sabalausky wrote: - OSX 10.7: Works fine. (At least it did last time I tried it, a couple weeks ago. It *could* have regressed but I won't have access to the machine again until maybe Sunday.) As far as I can see, dmd.conf is missing. I used the following command: ./create_dmd_release master --extras=./dmd-localextras/localextras-osx --archive-zip -- /Jacob Carlborg
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 02:53, Nick Sabalausky wrote: - OSX 10.7: Works fine. (At least it did last time I tried it, a couple weeks ago. It *could* have regressed but I won't have access to the machine again until maybe Sunday.) When I unpack the generate zip none of the binaries have executable permission set. -- /Jacob Carlborg
Re: Had another 48hr game jam this weekend...
Am 02.09.2013 05:46, schrieb H. S. Teoh: Maybe we should write our own debugger in D ... ;-) (OK, that may be too big a chunk to chew off right now. But, one can dream.) There was DDBG by Jascha Wetzel (the domain ddbg.mania.de seems to be down now), but it seems it has been temporarily picked up again a while ago: http://www.dsource.org/projects/ddbg_continued/browser/src From what I remember, it worked really well and I always thought it was a shame that it had been abandoned. The big drawback is that it is Windows only in it's current incarnation. No idea how well it is extensible for other debug/object file formats.
Re: [OT]: Memory Performance
On Wednesday, 4 September 2013 at 05:04:00 UTC, Jonathan M Davis wrote: Only $49 difference? I'd definitely go for the more memory. Of course, I always go for high performance over price unless the difference is really pricey, and I wouldn't want as little memory as 8 GB either. I always use the maximum memory that my motherboard will support. And memory is cheap these days, so out of all the things that you could do to improve your computer, it's not particularly expensive. But I guess that it all depends on how mch you're willing to spend. - Jonathan M Davis You are right of course. I prefer to spend a little bit more money and have a better machine. I was only wondering, if there is a real difference between the two. If there is a real difference, I would even go for the 16 GB Dual Channel DDR3 SDRAM at 1600MHz - 2 X 8 GB ( + $139.00 ), but that would break the bank. Also I wonder if I could get it cheaper somewhere else and add it afterwards. The SSD, yes, I'd love to have one but they are still so darn expensive.
Re: [OT]: Memory Performance
On Wednesday, 4 September 2013 at 06:47:15 UTC, Jacob Carlborg wrote: On 2013-09-03 23:10, Chris wrote: The machine I was looking at is this one: https://www.system76.com/laptops/model/gazp9# A laptop! Buy parts a build your own desktop :) You are actually right. I should look into that possibility too, given the pricing policy most companies have. Thanks for the comment. Do you have any tips or useful links? PS First I started to write my own programs, now I'll build my own machines! :-)
Re: YouTube programming D
On Wednesday, 4 September 2013 at 08:51:11 UTC, Chris wrote: On Wednesday, 4 September 2013 at 02:04:17 UTC, Rikki Cattermole wrote: Would you be interested in doing a live stream programming on Twitch? I started doing it recently when I can. It would be great to get together a group of us and do it with e.g. Mumble. We can publish videos on to Youtube after the stream (Twitch helps with that). I have no experience with that and have too many projects going on at the moment. I'm afraid I have to decline. Thats fine, its open to anyone though. As a method for advertising and teaching.
Re: YouTube programming D
On Wednesday, 4 September 2013 at 02:04:17 UTC, Rikki Cattermole wrote: Would you be interested in doing a live stream programming on Twitch? I started doing it recently when I can. It would be great to get together a group of us and do it with e.g. Mumble. We can publish videos on to Youtube after the stream (Twitch helps with that). I have no experience with that and have too many projects going on at the moment. I'm afraid I have to decline.
Re: [OT]: Memory Performance
On Wednesday, 4 September 2013 at 08:43:53 UTC, Chris wrote: On Wednesday, 4 September 2013 at 05:04:00 UTC, Jonathan M Davis wrote: Only $49 difference? I'd definitely go for the more memory. Of course, I always go for high performance over price unless the difference is really pricey, and I wouldn't want as little memory as 8 GB either. I always use the maximum memory that my motherboard will support. And memory is cheap these days, so out of all the things that you could do to improve your computer, it's not particularly expensive. But I guess that it all depends on how mch you're willing to spend. - Jonathan M Davis You are right of course. I prefer to spend a little bit more money and have a better machine. I was only wondering, if there is a real difference between the two. If there is a real difference, I would even go for the 16 GB Dual Channel DDR3 SDRAM at 1600MHz - 2 X 8 GB ( + $139.00 ), but that would break the bank. Also I wonder if I could get it cheaper somewhere else and add it afterwards. Honestly, 4 is usually enough, but a bit more never hurts. 8 is *more* than enough. Getting anything more than 8 is really just wasted money, unless you have a *very specific* use case that requires it: Specifically, the only one I can think of is having a VM farm server. Or maybe some *super*heavy* image processing or video editing. Other than that, no, I would not cough up an extra +90$ for the +8 Gigs (I suppose +139$ is compared to the base 4 Gigs?). Especially when you can get a 128 Gig SSD at that price. BTW: About the hybrid drives. AFAIK, they used to be better than not hybrid, I guess but still leaps and bounds inferior to an SSD. That said, their algorithms get better every day, so I don't know. I think the real choice depends on what kind of storage volume you *need*. I'd *default* back to a hybrid, if having a single SSD didn't fit my volume needs. But even then, external 2.5 drives are dirt cheap nowadays, so...
Re: proposal: @mixin functions to auto-mixin at call site
On Wednesday, 4 September 2013 at 02:26:27 UTC, Timothee Cour wrote: that's the whole point, it allows to transparently replace a field access by a property function call without breaking client code. How else would you do that? You can't replace field access with function call transparently if it has side effects. In the end breakage may be even worse. For me only replacing @property fields with @property methods makes sense (with former prohibited to be taken address of and latter forced to be weakly pure).'
Re: Had another 48hr game jam this weekend...
On Tuesday, 3 September 2013 at 21:34:42 UTC, Timon Gehr wrote: On 09/03/2013 06:33 PM, Joakim wrote: Sure, but I did provide demonstration, that thread. That thread seems to demonstrate a failure of communication. By whom? It's pretty obviously the zealots. They have decided that open source is good and closed source is bad, just like the global warming zealots, and will make silly arguments to try and justify that, even to someone like me who is trying to carve out a place for open source. You may agree with their conclusion and therefore defend their arguments, but any impartial observer wouldn't. Any impartial observer would notice the personal attacks, even if that observer was completely ignorant of the discussion topic. Any impartial observer would interpret those as lack of a well-reasoned argument and decide to spend his time impartially observing something more interesting. I call it like I see it. An impartial observer can determine if what you call personal attacks, more like labeling of the usually silly or wrong tenor of their arguments and what kind of person generally makes such dumb arguments, are accurate. If you want to take a long thread full of arguments about the topic and pick out a little name-calling and then run away, clearly the argument is lost on you. On Wednesday, 4 September 2013 at 00:25:30 UTC, deadalnix wrote: On Tuesday, 3 September 2013 at 16:33:55 UTC, Joakim wrote: Sure, but I did provide demonstration, that thread. The OSS zealots repeatedly make arguments that are wrong, irrelevant, and worst, just completely out of left field. This is a common pathology when you have decided on your conclusion and are arguing backwards from it: your arguments don't make any sense and come out of left field. They have decided that open source is good and closed source is bad, just like the global warming zealots, and will make silly arguments to try and justify that, even to someone like me who is trying to carve out a place for open source. You may agree with their conclusion and therefore defend their arguments, but any impartial observer wouldn't. You seem confused by the difference between saying something and providing conclusive evidence. That thread _is_ conclusive evidence. If you think otherwise, you are deeply confused.
Re: [OT]: Memory Performance
On Tuesday, 3 September 2013 at 16:15:51 UTC, Chris wrote: If you had the choice between: - 4 GB DDR3 SDRAM at 1600MHz - 1 X 4 GB - 8 GB Dual Channel DDR3 SDRAM at 1600MHz - 2 X 4GB ( + $49.00 ) Is it worth the extra money or is the increase in performance not worth mentioning? Any experience with that. The processor 4th Generation Intel® Core™ i7-4700MQ Processor ( 2.4 GHz 6MB L3 Cache - 4 Cores plus Hyperthreading ) Thanks. Adding memory normally does not improve performance. Lack of one harms it though. My simple rule of a thumb is Am I using more than 2/3 of existing RAM in typical working scenario? Then buy more. (I only needed 8 GB because of virtual machines and tmpfs abuse)
Re: [OT]: Memory Performance
On Wednesday, 4 September 2013 at 09:09:49 UTC, monarch_dodra wrote: BTW: About the hybrid drives. AFAIK, they used to be better than not hybrid, I guess but still leaps and bounds inferior to an SSD. That said, their algorithms get better every day, so I don't know. I think the real choice depends on what kind of storage volume you *need*. I'd *default* back to a hybrid, if having a single SSD didn't fit my volume needs. But even then, external 2.5 drives are dirt cheap nowadays, so... SSDs: Well, memory needs are medium to high in my case. Recording and editing music eats up a lot of space, and GBs keep accumulating as I keep old versions of projects, original versions of images alongside the edited versions, download programs, libraries and plugins, maybe the odd VirtualBox installation (and I lack the discipline to transfer old files every X weeks to an external drive, just as I hate doing the dishes). I agree that 128-250GB are loads and it takes a while to run out of space, however, it happens faster than you think these days, because more and more stuff is stored on computers (music libraries, pictures, movies and whatnot). So I'm not sure about SSDs. They are still a bit too expensive (price / storage), in my opinion. But maybe if I build my own desktop, I could find a good compromise. A good solution would be a SSD for running programs and a SATA drive next to it to store the data. (Which is admittedly not too far from the external drive solution :)
Re: Just me? Compiling chmgen head on DMD master vs 2.063.2
On Friday, 30 August 2013 at 01:00:47 UTC, Nick Sabalausky wrote: Can anyone see whether or not they're able to reproduce this, because I'm not sure if it's some weird bug or just something wrong on my system: Hi Nick, http://d.puremagic.com/issues/show_bug.cgi?id=10729 Maybe we're facing the same issue?
Re: [OT]: Memory Performance
On Wed, 04 Sep 2013 11:40:41 +0200 Chris wend...@tcd.ie wrote: I agree that 128-250GB are loads and it takes a while to run out of space, however, it happens faster than you think these days, Heh, yea. Personally, I'd find 128-250GB unbearably small unless it was in addition to a beefier secondary HDD. My current system (a laptop) is 320GB and I find that very tight. It wouldn't even be good enough for me if I wasn't using my prior computer (a desktop) as a 2.5 TB (or so) file server. Maybe I'm just weird (well, I know I am ;) ), but what I lack in processor needs I tend to make up for in storage needs. OTOH, my server is only a few gigs HDD, and that's been fine so far. *shrug*
Re: [OT]: Memory Performance
On Wednesday, 4 September 2013 at 10:36:14 UTC, Nick Sabalausky wrote: On Wed, 04 Sep 2013 11:40:41 +0200 Chris wend...@tcd.ie wrote: I agree that 128-250GB are loads and it takes a while to run out of space, however, it happens faster than you think these days, Heh, yea. Personally, I'd find 128-250GB unbearably small unless it was in addition to a beefier secondary HDD. My current system (a laptop) is 320GB and I find that very tight. It wouldn't even be good enough for me if I wasn't using my prior computer (a desktop) as a 2.5 TB (or so) file server. Maybe I'm just weird (well, I know I am ;) ), but what I lack in processor needs I tend to make up for in storage needs. OTOH, my server is only a few gigs HDD, and that's been fine so far. *shrug* I ended up installing a ZFS based NAS at home. I got 4TB of data, snapshotted hourly, and replicated on secondary backup. I use it as my centralized storage solution. Regardless which computer I'm on (Home PC/Home laptop/ work laptop, wife's laptop, TV server, tablet), my files are there with me, with no need for data transfer. All of these have about 120 Gigs of local storage, except for the home laptop, which is 250 (useful for taking stuff when not at home). In any case, I don't believe in having local storage anymore. You don't need to go hardcore with a server or anything, but I think external storage is a superior solution. They make 2TB 2.5 external drives nowadays. All they need is a USB port and they are good to go.
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 08:33:28 +0200 Jacob Carlborg d...@me.com wrote: On 2013-09-04 02:53, Nick Sabalausky wrote: The current status: --- - OSX 10.7: Works fine. (At least it did last time I tried it, a couple weeks ago. It *could* have regressed but I won't have access to the machine again until maybe Sunday.) I can test it on Mac OS X 10.8. Great. :) Are you building a universal binary of the libraries? Yes. - Debian 6 (32-bit OS): This tool isn't intended to support 32-bit OSes (since it must compile both 32-bit and 64-bit phobos), but it works fine up until it gets to the 64-bit stuff. If I manually comment out the 64-bit stuff, then everything else works fine. Why don't you just version that out? I'm thinking I may just add --32-bit(-only) and --64-bit(-only) switches. - Debian 6 (64-bit OS): It fails when linking the 32-bit phobos complaining that it can't link with libcurl. I'm fairly certain this is because I have no freaking idea how to install the 32-bit libcurl*-*-dev on a 64-bit Debian. (I *did* install libcurl4-openssl-dev, but I'm pretty sure it only installed for 64-bit. And I can't figure out how to get the 32-bit.) Using apt-get install package:architecture as suggested here: https://wiki.debian.org/Multiarch/HOWTO Requires Debian 7.0 or later. For Debian 6, install the the packages gcc-multilib and ia32-libs. I definitely have multilib on there since other stuff works 32-bit (like rdmd). It's just libcurl that I can't seem to get 32-bit or multilib. - FreeBSD 9.1 (64-bit OS): No idea, I don't have access to a 64-bit FreeBSD machine, and my stupid Intel CPU lacks the ability to run a 64-bit OS in a VM. I can give you a help with this, if no one else beats me. Cool.
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 09:16:38 +0200 Jacob Carlborg d...@me.com wrote: A couple of issues/questions: * Mac OS X uses dylib as the extension for dynamic libraries Thanks. Will fix. * On Mac OS X Xcode is required. It's possible to just download the command line tools but I don't think that has been verified to work I'll make a note in the docs section. * --combine-zip (Posix-only) Combine all platform-specific archives in current directory into cross-platform zip archive. Cannot be used on Windows because the symlinks would be destroyed. Implies --skip-package. Can't zip for Windows handle symlinks? Windows Vista (I think) and later supports symlinks. In an attempt to keep the platform differences as minimal as possible, I have it set up to automatically download and use Info-ZIP and 7zip on Windows, the same programs typically used on Posix. Unfortunately, these did not appear to handle symlinks correctly. Anyone know of one I could use that does? * The extra files should be put under version control I agree, and I did do that with some of them (https://github.com/Abscissa/installer/tree/create-zip/create_dmd_release/extras). But for other files I wasn't sure whether there might be any potential rights/license issues, or issues with sticking binary files up on github (my understanding is that git isn't particularly efficient with binaries). So I didn't want to jump the gun on that unless we had an official OK on all such files. If any of those other files do get ok'ed for version control, then they can simply be added to the proper OS subdirectory under https://github.com/Abscissa/installer/tree/create-zip/create_dmd_release/extras and it should just work. * Does this builds a release for FreeBSD 64bit? If not, it should Actually, that's a good point, I have to double-check that. I don't remember adding any code to skip 64-bit on FreeBSD, *but* I was careful to make everything match the v2.063.2 release zip as closely as possible, so I might have omitted it under the assumption that Well, this release zip doesn't have bin64 or lib64 for bsd, so I guess it's not considered ready for prime-time yet.
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 10:01:28 +0200 Jacob Carlborg d...@me.com wrote: On 2013-09-04 02:53, Nick Sabalausky wrote: - OSX 10.7: Works fine. (At least it did last time I tried it, a couple weeks ago. It *could* have regressed but I won't have access to the machine again until maybe Sunday.) As far as I can see, dmd.conf is missing. I used the following command: ./create_dmd_release master --extras=./dmd-localextras/localextras-osx --archive-zip [...] When I unpack the generate zip none of the binaries have executable permission set. Thanks, I'll check into both of those.
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 10:01:02 +0200 Jacob Carlborg d...@me.com wrote: Why are you using HTTPS when cloning and not SSH? If I'm not mistaken the latter is faster. I think I just copy-pasted it from somewhere. It is really better to do the g...@github.com:blah/blah.git?
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 13:18, Nick Sabalausky wrote: I think I just copy-pasted it from somewhere. It is really better to do the g...@github.com:blah/blah.git? As far as I know, yes. -- /Jacob Carlborg
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 13:16, Nick Sabalausky wrote: Actually, that's a good point, I have to double-check that. I don't remember adding any code to skip 64-bit on FreeBSD, *but* I was careful to make everything match the v2.063.2 release zip as closely as possible, so I might have omitted it under the assumption that Well, this release zip doesn't have bin64 or lib64 for bsd, so I guess it's not considered ready for prime-time yet. The latest release of DMD for FreeBSD only includes 32bit binaries. -- /Jacob Carlborg
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 09:48:08 +0200 Jacob Carlborg d...@me.com wrote: I would be nice if I could pass the -j flag to make, or if it could do that automatically. It can save quite a lot of time when compiling DMD. That's the use X number of simultaneous processes flag, right? Good idea, I'll add a -j flag and pass it through to make.
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 13:01, Nick Sabalausky wrote: Requires Debian 7.0 or later. For Debian 6, install the the packages gcc-multilib and ia32-libs. I definitely have multilib on there since other stuff works 32-bit (like rdmd). It's just libcurl that I can't seem to get 32-bit or multilib. I would be very surprised if libcurl isn't included in ia32-libs. -- /Jacob Carlborg
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 13:21:06 +0200 Jacob Carlborg d...@me.com wrote: On 2013-09-04 13:01, Nick Sabalausky wrote: Requires Debian 7.0 or later. For Debian 6, install the the packages gcc-multilib and ia32-libs. I definitely have multilib on there since other stuff works 32-bit (like rdmd). It's just libcurl that I can't seem to get 32-bit or multilib. I would be very surprised if libcurl isn't included in ia32-libs. Hmm, maybe I'm missing ia32-libs then. I'll check when I get a chance.
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 13:22:39 +0200 Jacob Carlborg d...@me.com wrote: On 2013-09-04 13:16, Nick Sabalausky wrote: Actually, that's a good point, I have to double-check that. I don't remember adding any code to skip 64-bit on FreeBSD, *but* I was careful to make everything match the v2.063.2 release zip as closely as possible, so I might have omitted it under the assumption that Well, this release zip doesn't have bin64 or lib64 for bsd, so I guess it's not considered ready for prime-time yet. The latest release of DMD for FreeBSD only includes 32bit binaries. Yea, that's why it's possible I might have excluded 64-bit for FreeBSD (and then forgot I did so). I'll check.
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wednesday, 4 September 2013 at 11:23:53 UTC, Jacob Carlborg wrote: On 2013-09-04 13:18, Nick Sabalausky wrote: I think I just copy-pasted it from somewhere. It is really better to do the g...@github.com:blah/blah.git? As far as I know, yes. git:// is faster https:// is less likely to be blocked by various firewalls and filters Choice is yours :)
Re: [OT]: Memory Performance
On 2013-09-04 10:48, Chris wrote: You are actually right. I should look into that possibility too, given the pricing policy most companies have. Thanks for the comment. Do you have any tips or useful links? I usually look at sites that compare prices. These usually give an idea of what's available on the market. Then just go through each component you need and find a price/performance ratio you're satisfied with. Then find where those components are cheapest and you think you can trust that company/site selling them. Also read about the components of the vendor's site. -- /Jacob Carlborg
Re: [OT]: Memory Performance
On Wednesday, 4 September 2013 at 10:45:50 UTC, monarch_dodra wrote: You don't need to go hardcore with a server or anything, but I think external storage is a superior solution. They make 2TB 2.5 external drives nowadays. All they need is a USB port and they are good to go. SSD + sshfs 3
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 2013-09-04 13:24, Nick Sabalausky wrote: That's the use X number of simultaneous processes flag, right? Good idea, I'll add a -j flag and pass it through to make. Yes. -- /Jacob Carlborg
Re: Need help to finish DMD zip/7z release generator (alpha release)
On 04/09/13 13:21, Jacob Carlborg wrote: On 2013-09-04 13:01, Nick Sabalausky wrote: Requires Debian 7.0 or later. For Debian 6, install the the packages gcc-multilib and ia32-libs. I definitely have multilib on there since other stuff works 32-bit (like rdmd). It's just libcurl that I can't seem to get 32-bit or multilib. I would be very surprised if libcurl isn't included in ia32-libs. Yes, ia32-libs depends on ia32-libs-i386:i386 which depends on libcurl3:i386 -- Jordi Sayol
Re: [OT]: Memory Performance
On 2013-09-04 12:36, Nick Sabalausky wrote: Heh, yea. Personally, I'd find 128-250GB unbearably small unless it was in addition to a beefier secondary HDD. My current system (a laptop) is 320GB and I find that very tight. It wouldn't even be good enough for me if I wasn't using my prior computer (a desktop) as a 2.5 TB (or so) file server. I completely agree. I have 500GB on my system disk (I have a couple of disk for storage in addtion) and it's quite small. Especially when I have a couple of virtual machines installed. -- /Jacob Carlborg
Re: [OT]: Memory Performance
On 2013-09-04 12:45, monarch_dodra wrote: I ended up installing a ZFS based NAS at home. I got 4TB of data, snapshotted hourly, and replicated on secondary backup. I use it as my centralized storage solution. Regardless which computer I'm on (Home PC/Home laptop/ work laptop, wife's laptop, TV server, tablet), my files are there with me, with no need for data transfer. All of these have about 120 Gigs of local storage, except for the home laptop, which is 250 (useful for taking stuff when not at home). In any case, I don't believe in having local storage anymore. You don't need to go hardcore with a server or anything, but I think external storage is a superior solution. They make 2TB 2.5 external drives nowadays. All they need is a USB port and they are good to go. I wouldn't mind having that. I just don't know where to put one. -- /Jacob Carlborg
Re: std.serialization: pre-voting review / discussion
On Wednesday, 14 August 2013 at 09:26:55 UTC, Jacob Carlborg wrote: On 2013-08-14 11:17, Tove wrote: I find the newstyle both more intuitive and you also more dry not duplicating the identifier: int b; mixin NonSerialized!(b) @nonSerialized struct Foo { int a; int b; int c; } struct Bar { int a; int b; @nonSerialized int c; } Absolutely. Jacob, can you add @serializationName(string name) UDA? I saw the custom serialization example from documentation: https://dl.dropboxusercontent.com/u/18386187/docs/std.serialization/std_serialization_serializable.html#.Serializable class Foo : Serializable { int a; void toData (Serializer serializer, Serializer.Data key) { serializer.serialize(a, b); } void fromData (Serializer serializer, Serializer.Data key) { a = serializer.deserialize!(int)(b); } } Whith @serializationName(string name) attribute example should look like this: class Foo { @serializationName(b) int a; } Or for class/struct name: @serializationName(Bar) class Foo { int a; } I think it's easier to use than custom serialization. And @nonSerialized UDA used for same purpose - simplify serialization customization. Is it possible to implement?
Re: Linking C extern(C) on OS X: duplicate symbols not flagged
On Wednesday, 4 September 2013 at 06:36:24 UTC, Jacob Carlborg wrote: Perhaps time to file a bug report. I don't know if there's a reason to not use the same sections as C does. I posted it here hoping Walter might comment on this. Maybe he had a good reason to choose a different section. I'll wait a while, and if no feedback is given (it really has to be a different section because X, Y, Z), I'll post a bug report.
Re: std.serialization: pre-voting review / discussion
On 2013-09-04 14:37, ilya-stromberg wrote: Jacob, can you add @serializationName(string name) UDA? I saw the custom serialization example from documentation: https://dl.dropboxusercontent.com/u/18386187/docs/std.serialization/std_serialization_serializable.html#.Serializable class Foo : Serializable { int a; void toData (Serializer serializer, Serializer.Data key) { serializer.serialize(a, b); } void fromData (Serializer serializer, Serializer.Data key) { a = serializer.deserialize!(int)(b); } } Whith @serializationName(string name) attribute example should look like this: class Foo { @serializationName(b) int a; } Or for class/struct name: @serializationName(Bar) class Foo { int a; } I think it's easier to use than custom serialization. And @nonSerialized UDA used for same purpose - simplify serialization customization. @nonSerialized is already available. At the bottom of the link you posted. Is it possible to implement? Yes, the question is how much of these customization should be supported. It's easy to add at a later time if I don't add it from the beginning. -- /Jacob Carlborg
Re: [OT]: Memory Performance
On Wednesday, 4 September 2013 at 08:48:52 UTC, Chris wrote: On Wednesday, 4 September 2013 at 06:47:15 UTC, Jacob Carlborg wrote: On 2013-09-03 23:10, Chris wrote: The machine I was looking at is this one: https://www.system76.com/laptops/model/gazp9# A laptop! Buy parts a build your own desktop :) You are actually right. I should look into that possibility too, given the pricing policy most companies have. Thanks for the comment. Do you have any tips or useful links? Yeah, if you don't need portability AND lots of power, I still think a desktop is the way to go. For a laptop, I prioritise battery life and weight above all else, these days; if I need heavy lifting, I'll just SSH into my desktop. Best part is, that portable unit only sets you back about the difference between a high-end laptop and its desktop equivalent. If this isn't an urgent purchase, definitely watch for sales and discounts; play your cards right, and you should be able to get a nice Haswell box for about $600 with a display. You've more-or-less missed the US Labour Day sales, so the next big events will probably be Halloween, and then Black Friday (which is completely bonkers). Outside of that, weekly specials are...well, weekly (though usually weak). Outside of the big names, pricewatch [0] and slickdeals [1] are probably still useful for finding low prices, though you'll end up chasing across a bunch of different retailers on that path. Another useful tool is the Camelizer [2], to see price history for a potential buy. If you let up know roughly where in the world you are, someone else may have some idea of what retailers will let you dodge overseas shipping costs if it's a pressing concern. On to matters of part selection, since it sounds like your first build, some general tips: - As a rule of thumb, if it's a generic brand part, avoid it like the plague. If there's one lesson I've learned, you tend to get what you pay for with computer parts (...up to a point. Those 6-core Xeons aren't really priced to move). If you're unsure, look up reviews on Newegg and Amazon. - Don't get _too_ caught up in the numbers. A couple hundred MHz one way or another on a part won't be world-changing. On the other hand you're probably not going to buy a new machine for a few years and my experience is you won't bother upgrading anything but RAM and maybe GPU. - Do make sure to get a decent power supply. A crappy PSU will cause headaches and instability. Pay special attention to the PFC rating: efficient power delivery is good unless you live in a state where electricity is dirt cheap. Also keep an eye out for Modular PSUs, which is a nice perk for keeping internal cable clutter low. - Get a decent power supply even if one comes with whatever case you buy (some people don't like their machines to be a pile of parts on the desk. I call them uninspired ;) ). The pack-in PSU tends to be awful (as a rule of thumb, if it's not heavier than it looks, it's rubbish). - I'd avoid motherboards from Foxconn, Biostar, and ECS. Budget manufacturers, and I've had poor reliability from them in the past. - For Linux, particularly pay attention to the network hardware on the motherboard. Buying something with Broadcom is playing with fire. Atheros and Intel are your friends. - If you don't need high-end graphics, the on-die Intel or AMD solution should serve well. (It's too bad the Iris Pro trim isn't available on the Haswell desktop parts; that even stacks up favourably against low-mid tier GPUs). - The stock cooler that comes with a modern CPU is actually fairly decent. No need to get an aftermarket version. - A basic cheapo case is plenty for probably 95% of builds. If you can get one with a removable motherboard tray, that's a nice feature, but not essential. - If you need a discrete GPU and you're using Linux, I'd personally look for some kind of fanless Radeon. I find the general driver situation is just better for AMD cards. - There's a lot of fluctuation in display prices right now, but getting one for under a hundred bucks is probably doable. - You probably don't even need an optical device these days. Just boot from a USB stick. Hope that helps! -Wyatt [0] http://www.pricewatch.com/ [1] http://slickdeals.net/ [2] http://us.camelcamelcamel.com/camelizer
Re: [OT]: Memory Performance
On 04.09.2013 10:48, Chris wrote: On Wednesday, 4 September 2013 at 06:47:15 UTC, Jacob Carlborg wrote: On 2013-09-03 23:10, Chris wrote: The machine I was looking at is this one: https://www.system76.com/laptops/model/gazp9# A laptop! Buy parts a build your own desktop :) You are actually right. I should look into that possibility too, given the pricing policy most companies have. Thanks for the comment. Do you have any tips or useful links? PS First I started to write my own programs, now I'll build my own machines! :-) I used http://www.reddit.com/r/buildapc/ , it's got great info and people willing to help you choose the best/cheapest parts.
Re: Had another 48hr game jam this weekend...
On 09/04/2013 11:26 AM, Joakim wrote: On Tuesday, 3 September 2013 at 21:34:42 UTC, Timon Gehr wrote: On 09/03/2013 06:33 PM, Joakim wrote: Sure, but I did provide demonstration, that thread. That thread seems to demonstrate a failure of communication. By whom? [...] When communication fails, there is usually not a single side responsible for it. (Unless one side is trolling. Trolls are typically anonymous.) They have decided that open source is good and closed source is bad, just like the global warming zealots, and will make silly arguments to try and justify that, even to someone like me who is trying to carve out a place for open source. You may agree with their conclusion and therefore defend their arguments, but any impartial observer wouldn't. Any impartial observer would notice the personal attacks, even if that observer was completely ignorant of the discussion topic. Any impartial observer would interpret those as lack of a well-reasoned argument and decide to spend his time impartially observing something more interesting. I call it like I see it. Great. An impartial observer can determine if what you call personal attacks, more like labeling of the usually silly or wrong tenor of their arguments and what kind of person generally makes such dumb arguments, are accurate. How? Accuracy of conclusions of fallacious reasoning is mostly incidental. Consider googling ad hominem, association fallacy and fallacy of irrelevance. If you want to take a long thread full of arguments about the topic and pick out a little name-calling and then run away, clearly the argument is lost on you. Frankly, I'm unimpressed. It's you who picked out the name-calling instead of arguments when summarizing the past discussion. In case any valuable arguments were part of that discussion then I'd advise to pick out those instead and put them in a coherent form. On Wednesday, 4 September 2013 at 00:25:30 UTC, deadalnix wrote: On Tuesday, 3 September 2013 at 16:33:55 UTC, Joakim wrote: Sure, but I did provide demonstration, that thread. The OSS zealots repeatedly make arguments that are wrong, irrelevant, and worst, just completely out of left field. This is a common pathology when you have decided on your conclusion and are arguing backwards from it: your arguments don't make any sense and come out of left field. They have decided that open source is good and closed source is bad, just like the global warming zealots, and will make silly arguments to try and justify that, even to someone like me who is trying to carve out a place for open source. You may agree with their conclusion and therefore defend their arguments, but any impartial observer wouldn't. You seem confused by the difference between saying something and providing conclusive evidence. That thread _is_ conclusive evidence. If you think otherwise, you are deeply confused. (Please do not mess up the threading.) Well, if this kind of simply-minded pseudo-reasoning is to find resonance, it has to be targeted at a less critical audience.
Re: [OT]: Memory Performance
On Wednesday, 4 September 2013 at 13:11:36 UTC, Wyatt wrote: On Wednesday, 4 September 2013 at 08:48:52 UTC, Chris wrote: On Wednesday, 4 September 2013 at 06:47:15 UTC, Jacob Carlborg wrote: On 2013-09-03 23:10, Chris wrote: The machine I was looking at is this one: https://www.system76.com/laptops/model/gazp9# A laptop! Buy parts a build your own desktop :) You are actually right. I should look into that possibility too, given the pricing policy most companies have. Thanks for the comment. Do you have any tips or useful links? Yeah, if you don't need portability AND lots of power, I still think a desktop is the way to go. For a laptop, I prioritise battery life and weight above all else, these days; if I need heavy lifting, I'll just SSH into my desktop. Best part is, that portable unit only sets you back about the difference between a high-end laptop and its desktop equivalent. If this isn't an urgent purchase, definitely watch for sales and discounts; play your cards right, and you should be able to get a nice Haswell box for about $600 with a display. You've more-or-less missed the US Labour Day sales, so the next big events will probably be Halloween, and then Black Friday (which is completely bonkers). Outside of that, weekly specials are...well, weekly (though usually weak). Outside of the big names, pricewatch [0] and slickdeals [1] are probably still useful for finding low prices, though you'll end up chasing across a bunch of different retailers on that path. Another useful tool is the Camelizer [2], to see price history for a potential buy. If you let up know roughly where in the world you are, someone else may have some idea of what retailers will let you dodge overseas shipping costs if it's a pressing concern. On to matters of part selection, since it sounds like your first build, some general tips: - As a rule of thumb, if it's a generic brand part, avoid it like the plague. If there's one lesson I've learned, you tend to get what you pay for with computer parts (...up to a point. Those 6-core Xeons aren't really priced to move). If you're unsure, look up reviews on Newegg and Amazon. - Don't get _too_ caught up in the numbers. A couple hundred MHz one way or another on a part won't be world-changing. On the other hand you're probably not going to buy a new machine for a few years and my experience is you won't bother upgrading anything but RAM and maybe GPU. - Do make sure to get a decent power supply. A crappy PSU will cause headaches and instability. Pay special attention to the PFC rating: efficient power delivery is good unless you live in a state where electricity is dirt cheap. Also keep an eye out for Modular PSUs, which is a nice perk for keeping internal cable clutter low. - Get a decent power supply even if one comes with whatever case you buy (some people don't like their machines to be a pile of parts on the desk. I call them uninspired ;) ). The pack-in PSU tends to be awful (as a rule of thumb, if it's not heavier than it looks, it's rubbish). - I'd avoid motherboards from Foxconn, Biostar, and ECS. Budget manufacturers, and I've had poor reliability from them in the past. - For Linux, particularly pay attention to the network hardware on the motherboard. Buying something with Broadcom is playing with fire. Atheros and Intel are your friends. - If you don't need high-end graphics, the on-die Intel or AMD solution should serve well. (It's too bad the Iris Pro trim isn't available on the Haswell desktop parts; that even stacks up favourably against low-mid tier GPUs). - The stock cooler that comes with a modern CPU is actually fairly decent. No need to get an aftermarket version. - A basic cheapo case is plenty for probably 95% of builds. If you can get one with a removable motherboard tray, that's a nice feature, but not essential. - If you need a discrete GPU and you're using Linux, I'd personally look for some kind of fanless Radeon. I find the general driver situation is just better for AMD cards. - There's a lot of fluctuation in display prices right now, but getting one for under a hundred bucks is probably doable. - You probably don't even need an optical device these days. Just boot from a USB stick. Hope that helps! -Wyatt [0] http://www.pricewatch.com/ [1] http://slickdeals.net/ [2] http://us.camelcamelcamel.com/camelizer Thanks a million. PS The location would be Republic of Ireland (UK should be fine too, shipping wise).
Re: Structs can't be zero bytes in size?
On 9/3/13 10:59, Andrej Mitrovic wrote: On 9/3/13, Lionello Lunesu lione...@lunesu.remove.com wrote: struct Z {}; Z a, b; assert(a != b); Since the structs are declared empty, their 1-byte values don't matter. So their addresses don't really matter either. It has to do with the ol' 'identity vs equality'. In the example above, a and b are not identical (do not refer to the same thing) and so their addresses should not be equal. The address of two 'named things' is the same if-and-only-if the names refer to the same thing. L.
Re: Top Github Languages for 2013 (so far)
On Wednesday, 4 September 2013 at 14:36:42 UTC, David Gileadi wrote: On 9/3/13 11:13 PM, Iain Buclaw wrote: On 4 September 2013 06:02, Peter Alexander Andralexdroid, surely? alexandroid :)
Re: Top Github Languages for 2013 (so far)
On 9/3/13 11:13 PM, Iain Buclaw wrote: On 4 September 2013 06:02, Peter Alexander peter.alexander...@gmail.com wrote: I imagine D does well in discussion largely due to the amount Walter and Andrei bombard reddit with links. a.k.a. Walterbot and Andralexbot. Andralexdroid, surely?
Re: proposal: @mixin functions to auto-mixin at call site
On Wednesday, 4 September 2013 at 14:42:26 UTC, Ary Borenszweig wrote: On 9/3/13 4:05 PM, Andrej Mitrovic wrote: On 9/3/13, Ary Borenszweig a...@esperanto.org.ar wrote: When you do import foo.bar you are importing arbitrary code... You are importing symbols. And when you do foo() you know you're calling a function. With the change, you'll never know what foo() does. Yes you know: you look at the source code, or the documentation. You don't do it for _every single symbol_. Good good matches naive assumptions, this is exactly what allows to read it fast. Reading code where you can't make assumptions about anything is a transitive (possibly exponential) task. Exactly the hell you get with undisciplined C macro usage.
Re: proposal: @mixin functions to auto-mixin at call site
On 9/3/13 4:05 PM, Andrej Mitrovic wrote: On 9/3/13, Ary Borenszweig a...@esperanto.org.ar wrote: When you do import foo.bar you are importing arbitrary code... You are importing symbols. And when you do foo() you know you're calling a function. With the change, you'll never know what foo() does. Yes you know: you look at the source code, or the documentation. This feature is never going to fly, but people are just going to argue this forever.. I know, I'm just trying to defend this point of view.
Re: proposal: @mixin functions to auto-mixin at call site
On 9/3/13 5:47 PM, Andrej Mitrovic wrote: On 9/3/13, Jacob Carlborg d...@me.com wrote: With properties you never know if you're invoking a method or accessing a field: foo.data; // call method or access field? Yeah but it does something with data on its own side. If this becomes an implicit mixin, it could do something with code at the call site. E.g. auto st = getSecurityToken(...); updateGui(); // what if this becomes a mixin and ends up reading 'st' and displaying it on the screen? It is equivalent to using globals everywhere in your codebase. Why would anyone do that? Do you use other people's source code without reading the documentation or reading the source code? How would the author of updateGui() know that you named your variable st? What if updateGui() does rm -rf / ? What if updateGui() always does a null pointer dereference? Ah, the language is too dangerous. I say we should remove function calls from the language.
Re: proposal: @mixin functions to auto-mixin at call site
On Wednesday, 4 September 2013 at 14:44:50 UTC, Ary Borenszweig wrote: Why would anyone do that? By an accident - mixins are not hygienic. Do you use other people's source code without reading the documentation or reading the source code? Yes, all the time. Documentation is always lacking and reading full 10 MLOC code base to tweak a single function is never an option. How would the author of updateGui() know that you named your variable st? He has no idea how you may name your variables, that is the key point. Thus he has no idea what safe symbol names to use. What if updateGui() does rm -rf / ? What if updateGui() always does a null pointer dereference? You will have a bugged/malicious function in your code base, one very easy to detect and fix. Nothing in common with discussed problem.
Re: proposal: @mixin functions to auto-mixin at call site
On 9/4/13 11:54 AM, Dicebot wrote: On Wednesday, 4 September 2013 at 14:44:50 UTC, Ary Borenszweig wrote: Why would anyone do that? By an accident - mixins are not hygienic. Do you use other people's source code without reading the documentation or reading the source code? Yes, all the time. Documentation is always lacking and reading full 10 MLOC code base to tweak a single function is never an option. How would the author of updateGui() know that you named your variable st? He has no idea how you may name your variables, that is the key point. Thus he has no idea what safe symbol names to use. So the problem is not that implicit mixin is unsafe. The problem is that there's no way to declare a new variable that won't conflict with existing variables in the current scope?
Re: proposal: @mixin functions to auto-mixin at call site
On Wednesday, 4 September 2013 at 15:18:10 UTC, Ary Borenszweig wrote: So the problem is not that implicit mixin is unsafe. The problem is that there's no way to declare a new variable that won't conflict with existing variables in the current scope? This is the same problem. The key property of mixin is that it is unhygienic and invades the caller scope. It is the only entity in D that is allowed to do it. Allowing implicit unhygienic inclusions is guaranteed to result in accidental symbol clash and/or unexpected modification sooner or later.
Re: Top Github Languages for 2013 (so far)
On Wednesday, 4 September 2013 at 05:02:06 UTC, Peter Alexander wrote: On Tuesday, 3 September 2013 at 17:09:04 UTC, Michael wrote: Main line is positive trend over all year ;)
Re: proposal: @mixin functions to auto-mixin at call site
frankly, UFCS mixin would make the use case in the OT bearable. fun().mixin.writeln is ok mixin(fun()).writeln is ugly (esp in more complex cases). so, is there anything against it despite requiring one to implement it? On Wed, Sep 4, 2013 at 8:29 AM, Dicebot pub...@dicebot.lv wrote: On Wednesday, 4 September 2013 at 15:18:10 UTC, Ary Borenszweig wrote: So the problem is not that implicit mixin is unsafe. The problem is that there's no way to declare a new variable that won't conflict with existing variables in the current scope? This is the same problem. The key property of mixin is that it is unhygienic and invades the caller scope. It is the only entity in D that is allowed to do it. Allowing implicit unhygienic inclusions is guaranteed to result in accidental symbol clash and/or unexpected modification sooner or later.
Re: proposal: @mixin functions to auto-mixin at call site
On Wed, Sep 4, 2013 at 2:23 AM, Dicebot pub...@dicebot.lv wrote: On Wednesday, 4 September 2013 at 02:26:27 UTC, Timothee Cour wrote: that's the whole point, it allows to transparently replace a field access by a property function call without breaking client code. How else would you do that? You can't replace field access with function call transparently if it has side effects. In the end breakage may be even worse. For me only replacing @property fields with @property methods makes sense (with former prohibited to be taken address of and latter forced to be weakly pure).' IIRC, foo.x with x a property should take address of return value of x(), which will either fail to compile or do the right thing if it returns a lvalue. So there's no undefined behavior as far as taking address of is concerned when replacing field by property. As for side effects, this is the reason one would go from field access to property, eg populating some data upon 1st access to a field x. Sure it can be misused, but I haven't seen a case in practice where it is misused.
Re: Had another 48hr game jam this weekend...
On Tuesday, 3 September 2013 at 04:29:54 UTC, Walter Bright wrote: On 9/2/2013 6:13 PM, deadalnix wrote: Unless the industry is showing signs of understanding, I'm done with theses stuffs. When amateurs can do better for free, you are not providing any service, you are just scamming your customers. I don't know about scamming, but I find the business practice of ignoring people who want to throw money at you to be utterly baffling. For example, I want to watch Forbrydelsen. It's only available as Region 2 DVDs. I have several dvd/bluray players, none will play it. What the hell? It's 6 years old. Who is making money off of me not being able to watch it? (Amazon sez: It won't play on standard DVD/Blu-ray players sold in the United States.) I'm unimpressed. Region locking exists solely* to protect the distributors so they don't have to compete with one another. I imagine if they tried pulling this in a single country (rather than across country lines), anti-collusion laws would kick in and they'd be subject to some hefty fines and the practice would be banned. * I'm sure they have their excuses for how it's good for consumers and protects them from some imagined threat but removing competition among the various distributors does nothing but hurt consumers.
Re: Had another 48hr game jam this weekend...
On Wednesday, 4 September 2013 at 13:23:19 UTC, Timon Gehr wrote: On 09/04/2013 11:26 AM, Joakim wrote: On Tuesday, 3 September 2013 at 21:34:42 UTC, Timon Gehr wrote: On 09/03/2013 06:33 PM, Joakim wrote: Sure, but I did provide demonstration, that thread. That thread seems to demonstrate a failure of communication. By whom? [...] When communication fails, there is usually not a single side responsible for it. (Unless one side is trolling. Trolls are typically anonymous.) Except that trolling has nothing to do with communication failure and one would think those zealots are the ones trolling, despite using what are presumably their real names, because of how dumb their arguments are. Any impartial observer would notice the personal attacks, even if that observer was completely ignorant of the discussion topic. Any impartial observer would interpret those as lack of a well-reasoned argument and decide to spend his time impartially observing something more interesting. I call it like I see it. Great. Except that you then criticize me for personal attacks and name-calling, make up your mind. An impartial observer can determine if what you call personal attacks, more like labeling of the usually silly or wrong tenor of their arguments and what kind of person generally makes such dumb arguments, are accurate. How? Accuracy of conclusions of fallacious reasoning is mostly incidental. Consider googling ad hominem, association fallacy and fallacy of irrelevance. I don't think you know what incidental means. :) In any case, if you can't see that they make several statements that are just factually wrong, I don't know what to tell you. If you are so ignorant that you don't even know the facts, there can be no discussion, which is why I bailed on that thread. If you want to take a long thread full of arguments about the topic and pick out a little name-calling and then run away, clearly the argument is lost on you. Frankly, I'm unimpressed. It's you who picked out the name-calling instead of arguments when summarizing the past discussion. In case any valuable arguments were part of that discussion then I'd advise to pick out those instead and put them in a coherent form. I called them what they are, zealots, which isn't really name-calling but an accurate description, and noted one of their main dumb arguments, so I did both. I'm not going to summarize that thread for you: either read it or don't. I could care less either way, because you seem to make almost as many mistakes as them. On Wednesday, 4 September 2013 at 00:25:30 UTC, deadalnix wrote: You seem confused by the difference between saying something and providing conclusive evidence. That thread _is_ conclusive evidence. If you think otherwise, you are deeply confused. (Please do not mess up the threading.) Responses to the two of you are best lumped together. I don't like it when people like you spam threads with multiple separate short responses to every other response in the thread. This is better. Well, if this kind of simply-minded pseudo-reasoning is to find resonance, it has to be targeted at a less critical audience. Except there was little reasoning in my above two sentences, only two statements about the other thread. The critical audience is not the problem, as you haven't been able to muster a critical response to any actual arguments in that thread. All you two do is make a bunch of dumb twits about the tone or character of the other thread, so I'll leave this meta-discussion here, as you two are clearly incapable of dealing with my actual arguments.
Re: Had another 48hr game jam this weekend...
On Tuesday, 3 September 2013 at 04:29:54 UTC, Walter Bright wrote: On 9/2/2013 6:13 PM, deadalnix wrote: Unless the industry is showing signs of understanding, I'm done with theses stuffs. When amateurs can do better for free, you are not providing any service, you are just scamming your customers. I don't know about scamming, but I find the business practice of ignoring people who want to throw money at you to be utterly baffling. For example, I want to watch Forbrydelsen. It's only available as Region 2 DVDs. I have several dvd/bluray players, none will play it. What the hell? It's 6 years old. Who is making money off of me not being able to watch it? (Amazon sez: It won't play on standard DVD/Blu-ray players sold in the United States.) I'm unimpressed. It's an issue of rights negotiation. Someone has to go buy the rights for each of those shows for every region and type of technology, whether broadcast or DVD or internet, each one is handled separately. Because there's no standardized contracts or pricing, these deals take forever and they simply don't bother if the market is too small, ie you and the three other people who want to watch Forbrydelsen, whatever that is. ;) If it costs them more to hire the high-priced lawyers to cut these deals than they will get from foreign sales, they don't bother. This is what bit torrent is for: http://bitsnoop.com/ http://thepiratebay.sx/ http://www.transmissionbt.com/ I've watched the full runs of HBO shows like Game of Thrones and Boardwalk Empire and any popular movie I want, in HD, through these torrent sites. I discovered an Australian reality show called My Restaurant Rules through a torrent site, despite never having heard of it anywhere else, and enjoyed it enough that I watched the entire second season through torrent almost a decade ago (http://en.wikipedia.org/wiki/My_Restaurant_Rules#Series_two). I haven't had any cable, HBO, or online video subscription service in more than a decade; I've probably rented one, maybe two, DVD/blurays during that time. It's all moving online anyway, only a question of when.
Re: d from the outside
On Sep 2, 2013, at 11:58 AM, Adam D. Ruppe destructiona...@gmail.com wrote: What we really should do is encourage everyone to use it straight out of the zip, or use one of the platform-specific installers. I thought this is what everyone did. Looking at that page, I think the problem is the to install a global copy bit, which should just be deleted. Installing a global copy is the same as most other apps--you generally want to symlink /usr/local/bin/dmd to where the file actually is, or instead to add the install location to your path.
Re: Had another 48hr game jam this weekend...
On Sep 2, 2013, at 2:04 PM, Walter Bright newshou...@digitalmars.com wrote: On 9/2/2013 1:36 PM, H. S. Teoh wrote: It's things like this keyhole interface, that caused me to be convinced that the GUI emperor has no clothes, and to turn to CLI-only development. One of the giant failures of the GUI interface, and that VS suffers from, too, is when you need to do repetitive operations. On the CLI, I constantly use the history list, and I constantly write throwaway scripts to automate what I'm doing at the moment. It makes everything I do, no matter how obscure, only 2 or 3 keypresses. With VS, or any GUI, if there's not a button to do it, I'm reduced to: move mouse click move mouse click Most editors these days have an option to record and playback macros. Does VS really not have this? Sounds easy, right? It is easy. Now do it to 1000 photos. With a command line tool: write a script that does it to one picture, name it cc.bat The problem I've encountered on Windows is that its default batch language is terrible. Any reasonable amount of command-line scripting requires either a different shell or ports of all the Unix tools.
Re: Had another 48hr game jam this weekend...
On Wednesday, 4 September 2013 at 20:37:40 UTC, Sean Kelly wrote: On Sep 2, 2013, at 2:04 PM, Walter Bright newshou...@digitalmars.com wrote: On 9/2/2013 1:36 PM, H. S. Teoh wrote: It's things like this keyhole interface, that caused me to be convinced that the GUI emperor has no clothes, and to turn to CLI-only development. One of the giant failures of the GUI interface, and that VS suffers from, too, is when you need to do repetitive operations. On the CLI, I constantly use the history list, and I constantly write throwaway scripts to automate what I'm doing at the moment. It makes everything I do, no matter how obscure, only 2 or 3 keypresses. With VS, or any GUI, if there's not a button to do it, I'm reduced to: move mouse click move mouse click Most editors these days have an option to record and playback macros. Does VS really not have this? Sounds easy, right? It is easy. Now do it to 1000 photos. With a command line tool: write a script that does it to one picture, name it cc.bat The problem I've encountered on Windows is that its default batch language is terrible. Any reasonable amount of command-line scripting requires either a different shell or ports of all the Unix tools. Newer versions of Windows have Powershell, which as a Linux/CLI guy, I must admit is reasonably close to something like BASH (perhaps even superior for some tasks), and there are aliases to many of the Unix commands. I think it may be the default batch language in the latest Windows versions. However, while it has aliases to many Unix-like commands it doesn't have everything an it also suffers from the Java diseases of having: Really.Long.Names.For.Everything
Re: Had another 48hr game jam this weekend...
On 09/04/2013 08:00 PM, Joakim wrote: On Wednesday, 4 September 2013 at 13:23:19 UTC, Timon Gehr wrote: On 09/04/2013 11:26 AM, Joakim wrote: On Tuesday, 3 September 2013 at 21:34:42 UTC, Timon Gehr wrote: On 09/03/2013 06:33 PM, Joakim wrote: Sure, but I did provide demonstration, that thread. That thread seems to demonstrate a failure of communication. By whom? [...] When communication fails, there is usually not a single side responsible for it. (Unless one side is trolling. Trolls are typically anonymous.) Except that trolling has nothing to do with communication failure Good trolling is often _indistinguishable_ from communication failure. ... Any impartial observer would notice the personal attacks, even if that observer was completely ignorant of the discussion topic. Any impartial observer would interpret those as lack of a well-reasoned argument and decide to spend his time impartially observing something more interesting. I call it like I see it. Great. Except that you then criticize me I don't criticize people, I question arguments. If you think these two things should be conflated, I beg you to reconsider. for personal attacks and name-calling, [...] ... There are multiple possibilities to replace the above statement in a way I would disapprove of, eg: - I call it like I don't see it. - I state inevitable fact. An impartial observer can determine if what you call personal attacks, more like labeling of the usually silly or wrong tenor of their arguments and what kind of person generally makes such dumb arguments, are accurate. How? Accuracy of conclusions of fallacious reasoning is mostly incidental. Consider googling ad hominem, association fallacy and fallacy of irrelevance. [...] what incidental means. :) It means: Occurring by chance in connection with something else. A possible reason informal reasoning makes use of heuristics is that they often work by chance in some evolutionary relevant contexts. [...]they make several statements that are just factually wrong, [...] IIRC you more or less successfully debunk some factually wrong statements. Not all of them were actually made, though. If you [...] don't [...] know the facts, there can be no discussion, One of the points of a discussion is to exchange facts and to widen one's understanding of different viewpoints. which is why I bailed on that thread. ... There are less intrusive ways of doing that. If you want to take a long thread full of arguments about the topic and pick out a little name-calling and then run away, clearly the argument is lost on you. Frankly, I'm unimpressed. It's you who picked out the name-calling instead of arguments when summarizing the past discussion. In case any valuable arguments were part of that discussion then I'd advise to pick out those instead and put them in a coherent form. I called them what they are, As I see it it is irrelevant in a discussion how anyone may classify anyone else taking part in that discussion. It is often even irrelevant who those people are. I'm just saying that if the goal is to make one's reasoning and opinions available to a potential reader, making it inconvenient to read and seemingly irrelevant is not the way to go. [...] which isn't really name-calling but an accurate description, :o) and noted one of their main [...] arguments, so I did both. No point can be made by noting that one hasn't made a specific fallacious argument or by noting that somebody has defended another point poorly. [...] On Wednesday, 4 September 2013 at 00:25:30 UTC, deadalnix wrote: You seem confused by the difference between saying something and providing conclusive evidence. That thread _is_ conclusive evidence. [...] (Please do not mess up the threading.) [...] Well, if this kind of simply-minded pseudo-reasoning is to find resonance, it has to be targeted at a less critical audience. Except there was little reasoning in my above two sentences, only two statements about the other thread. Exactly. (Or rather, one statement about the other thread and one irrelevant statement about a community member.) So a point of contention appears to be that some assume that evidence should be given in the form of reasoning or at least be accompanied by reasoning, whereas others don't? [...] I'll leave this meta-discussion here, as you two are clearly incapable of dealing with Typically the ones incapable of dealing with something leave. my actual arguments. What actual arguments are there? (Go look for them yourself. is not a valid answer.)
Re: Had another 48hr game jam this weekend...
I *hate* shell scripting. My rule is if it is more than three lines, do yourself a favor and use a real programming language. This is equally true on unix and windows. Well, actually, the limit with batch might be one line rather than three. But still, shells are for interactive entry. Doing any scripting on them is a filthy, time wasting, bug-prone hack. (Especially on unix where you get idiocy like command line too long even trying to do simple tasks like deleting a bunch of files! Or the output to a pipe gets truncated due to terminal width - I kid you not, FreeBSD did that to me some years ago when I had to use it on a server. Drove me nuts.)
Re: Had another 48hr game jam this weekend...
On Wed, Sep 04, 2013 at 01:10:53PM -0700, Sean Kelly wrote: On Sep 2, 2013, at 2:04 PM, Walter Bright newshou...@digitalmars.com wrote: [...] Sounds easy, right? It is easy. Now do it to 1000 photos. With a command line tool: write a script that does it to one picture, name it cc.bat The problem I've encountered on Windows is that its default batch language is terrible. Any reasonable amount of command-line scripting requires either a different shell or ports of all the Unix tools. Those who don't understand Unix are condemned to reinvent it, poorly. ;-) T -- It is the quality rather than the quantity that matters. -- Lucius Annaeus Seneca
Re: Had another 48hr game jam this weekend...
On Tuesday, 3 September 2013 at 21:26:46 UTC, Ramon wrote: Now, if you will excuse me, I'll hurry to debian unstable *g Latest GDC release is also in the soon-to-be released Ubuntu 13.10, if that's useful to you. And check D.Announce for the latest info on D packages in Arch Linux. I can't remember if you've tried to build from source, but for what it's worth that's now a fairly straightforward, albeit time-consuming, process. So don't be afraid to do that in order to have the latest release. I can help guide you through it if you like.
Re: Had another 48hr game jam this weekend...
On 4 September 2013 22:08, Craig Dillabaugh cdill...@cg.scs.carleton.ca wrote: On Wednesday, 4 September 2013 at 20:37:40 UTC, Sean Kelly wrote: On Sep 2, 2013, at 2:04 PM, Walter Bright newshou...@digitalmars.com wrote: On 9/2/2013 1:36 PM, H. S. Teoh wrote: It's things like this keyhole interface, that caused me to be convinced that the GUI emperor has no clothes, and to turn to CLI-only development. One of the giant failures of the GUI interface, and that VS suffers from, too, is when you need to do repetitive operations. On the CLI, I constantly use the history list, and I constantly write throwaway scripts to automate what I'm doing at the moment. It makes everything I do, no matter how obscure, only 2 or 3 keypresses. With VS, or any GUI, if there's not a button to do it, I'm reduced to: move mouse click move mouse click Most editors these days have an option to record and playback macros. Does VS really not have this? Sounds easy, right? It is easy. Now do it to 1000 photos. With a command line tool: write a script that does it to one picture, name it cc.bat The problem I've encountered on Windows is that its default batch language is terrible. Any reasonable amount of command-line scripting requires either a different shell or ports of all the Unix tools. Newer versions of Windows have Powershell, which as a Linux/CLI guy, I must admit is reasonably close to something like BASH (perhaps even superior for some tasks), and there are aliases to many of the Unix commands. I think it may be the default batch language in the latest Windows versions. However, while it has aliases to many Unix-like commands it doesn't have everything an it also suffers from the Java diseases of having: Really.Long.Names.For.Everything I thought Powershell got deprecated... -- Iain Buclaw *(p e ? p++ : p) = (c 0x0f) + '0';
Re: Had another 48hr game jam this weekend...
On Wednesday, 4 September 2013 at 20:51:03 UTC, Joseph Rushton Wakeling wrote: On Tuesday, 3 September 2013 at 21:26:46 UTC, Ramon wrote: Now, if you will excuse me, I'll hurry to debian unstable *g Latest GDC release is also in the soon-to-be released Ubuntu 13.10, if that's useful to you. And check D.Announce for the latest info on D packages in Arch Linux. I can't remember if you've tried to build from source, but for what it's worth that's now a fairly straightforward, albeit time-consuming, process. So don't be afraid to do that in order to have the latest release. I can help guide you through it if you like. Thank you, J R, for the info and your friendly offer to help. But I'm already fine and settled thanks to some hints in the GDC forum and in particular thanks to hints and help from Iain Buclaw (whose help and work can't be praised enough). In case someone else runs into similar problems: debian unstable (or unstable based derivates) offer GDC-4.8 apt-getable .deb (and phobos) which works well right out of the box. Thanks and A+ -R
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 09:16:38 +0200 Jacob Carlborg d...@me.com wrote: * Mac OS X uses dylib as the extension for dynamic libraries * On Mac OS X Xcode is required. It's possible to just download the command line tools but I don't think that has been verified to work Now fixed. I also added a -j,--jobs switch that passes through to GNU make on Posix (According to the --help screen, it looks like DM make doesn't support it).
Re: Had another 48hr game jam this weekend...
On Wednesday, 4 September 2013 at 21:34:21 UTC, Iain Buclaw wrote: On 4 September 2013 22:08, Craig Dillabaugh cdill...@cg.scs.carleton.ca wrote: clip Really.Long.Names.For.Everything I thought Powershell got deprecated... I don't follow Windows much, but a quick check didn't turn up anything. Maybe some of the Windows guys hanging around will know. Apparently there is a Powershell 4 coming out
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 04 Sep 2013 13:54:35 +0200 Jordi Sayol g.sa...@yahoo.es wrote: On 04/09/13 13:21, Jacob Carlborg wrote: On 2013-09-04 13:01, Nick Sabalausky wrote: Requires Debian 7.0 or later. For Debian 6, install the the packages gcc-multilib and ia32-libs. I definitely have multilib on there since other stuff works 32-bit (like rdmd). It's just libcurl that I can't seem to get 32-bit or multilib. I would be very surprised if libcurl isn't included in ia32-libs. Yes, ia32-libs depends on ia32-libs-i386:i386 which depends on libcurl3:i386 It turns out I was missing ia32-libs, however I just installed it an I'm still getting cannot find -lcurl (or something like that) from the linker. gcc-multilib is already installed, and again, 32-bit stuff that doesn't use libcurl works fine.
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, 4 Sep 2013 07:27:53 -0400 Nick Sabalausky seewebsitetocontac...@semitwist.com wrote: On Wed, 04 Sep 2013 13:22:39 +0200 Jacob Carlborg d...@me.com wrote: On 2013-09-04 13:16, Nick Sabalausky wrote: Actually, that's a good point, I have to double-check that. I don't remember adding any code to skip 64-bit on FreeBSD, *but* I was careful to make everything match the v2.063.2 release zip as closely as possible, so I might have omitted it under the assumption that Well, this release zip doesn't have bin64 or lib64 for bsd, so I guess it's not considered ready for prime-time yet. The latest release of DMD for FreeBSD only includes 32bit binaries. Yea, that's why it's possible I might have excluded 64-bit for FreeBSD (and then forgot I did so). I'll check. Just checked: The tool *is* set up to build and package 64-bit on FreeBSD (assuming the 32-bit stuff doesn't fail before it gets to the 64-bit pass).
Re: Had another 48hr game jam this weekend...
On Wed, Sep 04, 2013 at 11:00:10PM +0200, Adam D. Ruppe wrote: I *hate* shell scripting. My rule is if it is more than three lines, do yourself a favor and use a real programming language. This is equally true on unix and windows. I dunno, I find that windows batch files are so quirky, inconsistent, and straitjacketed that they're nigh unusable for anything but the most trivial uses. *nix shell scripts are a lot better. Well, actually, the limit with batch might be one line rather than three. But still, shells are for interactive entry. Doing any scripting on them is a filthy, time wasting, bug-prone hack. I agree that bash scripting beyond simple uses is fragile and full of unexpected holes (the primary culprit being the shell's over-eager interpolation that sometimes interpolates multiple times per command, and the lack of any usable built-in computational functions). It's generally pretty good for automating stuff you'd type by hand, but if you need anything more complex like actual computations, data manipulation, or control structures, I'd recommend Perl. Or rather, D. :) (Especially on unix where you get idiocy like command line too long even trying to do simple tasks like deleting a bunch of files! At least bash isn't so stupid as to impose arbitrary command-line length limits. But yeah, on *nixes where there is such a limit (and where it's unreasonably small), it's a royal pain. Or the output to a pipe gets truncated due to terminal width - I kid you not, FreeBSD did that to me some years ago when I had to use it on a server. Drove me nuts.) Hmm. I haven't seen this one before on Linux. A BSD-specific issue maybe? T -- GEEK = Gatherer of Extremely Enlightening Knowledge
Re: Need help to finish DMD zip/7z release generator (alpha release)
On Wed, Sep 04, 2013 at 05:55:41PM -0400, Nick Sabalausky wrote: On Wed, 04 Sep 2013 13:54:35 +0200 Jordi Sayol g.sa...@yahoo.es wrote: On 04/09/13 13:21, Jacob Carlborg wrote: On 2013-09-04 13:01, Nick Sabalausky wrote: Requires Debian 7.0 or later. For Debian 6, install the the packages gcc-multilib and ia32-libs. I definitely have multilib on there since other stuff works 32-bit (like rdmd). It's just libcurl that I can't seem to get 32-bit or multilib. I would be very surprised if libcurl isn't included in ia32-libs. Yes, ia32-libs depends on ia32-libs-i386:i386 which depends on libcurl3:i386 It turns out I was missing ia32-libs, however I just installed it an I'm still getting cannot find -lcurl (or something like that) from the linker. gcc-multilib is already installed, and again, 32-bit stuff that doesn't use libcurl works fine. Did you install libcurl*-dev? Debian lib packages generally only include runtime .so's; to get compile-time stuff you need the corresponding -dev packages. And I'm not sure why, but it seems that in debian/unstable there are multiple incompatible versions of libcurl-dev. The one I have is libcurl4-openssl-dev, just FYI. T -- Turning your clock 15 minutes ahead won't cure lateness---you're just making time go faster!