www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - [OT] unbelievable: #ifdef _OTHER_LIB_H

reply "Adam D. Ruppe" <destructionator gmail.com> writes:
So my computer died on me again last week and I had to buy new 
hardware. I was forced to update the software to run the new 
hardware... and it is painful.

I hate all software and have learned that if I want a job done 
right, I have to do it myself. Rarely, I find other people's 
software is OK with some slight modifications, so I try to do 
that.

xterm is one example. I basically like it but it is ugly and 
stupid so needs a few fixes. As such, I maintain my own private 
fork of it.

I went ahead and compiled that on the new thing today.... and it 
failed. wait what?!


#ifndef _XLIB_H_
#error Please include <X11/Xlib.h> before "xutf8.h"
#endif


That's in the xterm source code. Yes, it depends on the presence 
of a particular include guard.

The X11 source apparently recently changed to:

#ifndef _X11_XLIB_H_
#define _X11_XLIB_H_


thereby breaking xterm... and blackbox... and who knows what 
else. This one was brought to my attention thanks to the #error 
directive. But there's certainly other things silently being 
compiled out now, as the program does not work correctly after 
fixing this.

Unbelievable.


Praise D's modules.


PS the fonts are all hideous on the new linux too. I should have 
just bought a Windows license.
Nov 26 2014
next sibling parent reply "CraigDillabaugh" <craig.dillabaugh gmail.com> writes:
On Wednesday, 26 November 2014 at 20:06:02 UTC, Adam D. Ruppe 
wrote:
 xterm is one example. I basically like it but it is ugly and 
 stupid so needs a few fixes. As such, I maintain my own private 
 fork of it.
I would hate to hear what you have to say about software that you don't like :o)
 PS the fonts are all hideous on the new linux too. I should 
 have just bought a Windows license.
What is your new linux distro?
Nov 26 2014
parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Wednesday, 26 November 2014 at 20:59:30 UTC, CraigDillabaugh 
wrote:
 I would hate to hear what you have to say about software that 
 you don't like :o)
hehe
 What is your new linux distro?
Slackware 14.1. I've been a Slackware user for a long time and I still find it less unbearable than the alternatives, but it often annoys me. I should have probably just compiled a new kernel and left everything else the same. On my old system, I deleted all but four of the fonts because I couldn't stand them. Tried to do that here, and X wouldn't start. But I think I have it ok enough now, the text still looks pretty bad, but I'm getting used to it (ugh). I seriously considered putting Windows on though and running linux in a VM. But I don't like the Windows mouse behavior, I like my sloppy focus and especially the lack of click raising windows. And my hotkeys on keys reserved by the system in Windows. On the other hand, I don't like it when it takes a whole day to get basic things working. Argh. But hopefully once it is up it'll give me a lot of use again.
Nov 26 2014
parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Wed, 26 Nov 2014 21:07:00 +0000
"Adam D. Ruppe via Digitalmars-d" <digitalmars-d puremagic.com> wrote:

 Slackware 14.1. I've been a Slackware user for a long time and I=20
 still find it less unbearable than the alternatives, but it often=20
 annoys me.
ah, now i understand why i like your code so much! ;-)
Nov 26 2014
prev sibling next sibling parent reply "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Wed, Nov 26, 2014 at 08:06:01PM +0000, Adam D. Ruppe via Digitalmars-d wrote:
 So my computer died on me again last week and I had to buy new
 hardware. I was forced to update the software to run the new
 hardware... and it is painful.
I have a high distrust of brand new *hardware*, because they inevitably are gratuitously incompatible with my current software and require new-fangled OSes bloated with features I never use. Because of this, I only ever upgrade once every 5 years (if not longer). And when I do, I'll be sure to spend plenty of time researching what hardware isn't horribly broken or requires a specific version of a specific OS and doesn't work with anything else. Vendor lock-in is evil.
 I hate all software and have learned that if I want a job done right,
 I have to do it myself. Rarely, I find other people's software is OK
 with some slight modifications, so I try to do that.
I don't trust computers, I've spent too long programming to think that they can get anything right. -- James Miller :-)
 xterm is one example. I basically like it but it is ugly and stupid so
 needs a few fixes. As such, I maintain my own private fork of it.
You're brave. :-P Me, I've given up on xterm long ago, and use rxvt-unicode these days. At least it supports Unicode & Unicode fonts without *too* much pain. But still... Speaking of which, whatever happened with your D-based terminal app from a while back? You did get it to the point where it could support inline images and stuff, which is pretty cool; if you could get it to the point where it works well with Unicode fonts, I'd dump rxvt and use your terminal instead. :-P
 I went ahead and compiled that on the new thing today.... and it
 failed.  wait what?!
 
 
 #ifndef _XLIB_H_
 #error Please include <X11/Xlib.h> before "xutf8.h"
 #endif
 
 
 That's in the xterm source code. Yes, it depends on the presence of a
 particular include guard.
Whoa. That's ... messed up in more ways than I can name!
 The X11 source apparently recently changed to:
 
 #ifndef _X11_XLIB_H_
 #define _X11_XLIB_H_
 
 
 thereby breaking xterm... and blackbox... and who knows what else.
Yeah, that's the downside of maintaining your own fork of stuff. Upstream (presumably) would've taken care of updating these ugly bits of code, but you don't get the benefit of that unless you regularly pull from upstream and merge, which is a lot of work to begin with.
 This one was brought to my attention thanks to the #error directive.
 But there's certainly other things silently being compiled out now, as
 the program does not work correctly after fixing this.
Sigh... what else is new. That's the unvaryingly sad story I find with every sufficiently-complex C/C++ program. No matter how well-intentioned you start out and no matter how clean the initial design, it inevitably gravitates towards an incomprehensible patchwork of hacks upon bandages over patches to older hacks, containing hundreds of implicit assumptions (that's been already forgotten since the second last guy took over the codebase). Break any one of these hidden assumptions, and little inscrutable malfunctions start showing up everywhere.
 Unbelievable.
 
 Praise D's modules.
Not just D modules, but many other aspects of D tend to keep your program away from sinking into the rathole of patches upon hacks upon bandages over patches, that every C/C++ program inevitably gravitates towards. (Unfortunately, some areas of D haven't been ironed out enough in this respect, and sometimes you do still have to do ugly hacks to make things work. But generally, D does give you the tools to limit the scope of such hacks so that they don't creep and take over program readability.)
 PS the fonts are all hideous on the new linux too. I should have just
 bought a Windows license.
Shouldn't you be able to just install the good ole fonts and expunge the ugly new ones? Or has Linux "desktop" code devolved to the point of hard-coding specific font names for everything? <soapbox> This is one of the reasons I've completely given up on the whole "desktop metaphor" movement. It has become all glitz and no substance IMNSHO; all about this font vs. that font rather than actually solving real problems. Give me ratpoison and a bare terminal emulator any day, and my productivity gets boosted 300%. Even when I'm using Windows, that purportedly sports "better" UI design than Linux, I find myself spending more time fighting with the UI than actually getting anything done. The GUI emperor has no clothes, and I'm calling BS on the whole movement! </soapbox> T -- The irony is that Bill Gates claims to be making a stable operating system and Linus Torvalds claims to be trying to take over the world. -- Anonymous
Nov 26 2014
next sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Wednesday, 26 November 2014 at 21:02:20 UTC, H. S. Teoh via 
Digitalmars-d wrote:
 I have a high distrust of brand new *hardware*, because they 
 inevitably are gratuitously incompatible with my current 
 software and require new-fangled OSes bloated with features I 
 never use.
Yeah. My old computer started randomly freezing up though and I don't like that. Lasted only about 4 years. Though I might have solved the problem by disabling the second processor core in it, it went 10 days without trouble after doing that, whereas before it only went 7. But I ordered the new hardware just in case it failed completely, and when it all got here yesterday, I figured might as well give it a try. BTW this is my first computer without a floppy disk drive. I feel naked without one. Thankfully, it has an internal speaker though, I still have my beloved beeps.
 You're brave. :-P  Me, I've given up on xterm long ago, and use
 rxvt-unicode these days.
I never got into rxvt-unicode. I use xterm and plain rxvt together. I put rxvt on the right application menu key (next to right ctrl) to pop it up instantly and I dismiss it just as fast. I sometimes have ten rxvts open though who are only acting as controlling ttys for other applications. The megabyte of virtual space it saves over xterm seems important to me.... ...though the new box has 16 GB of memory and I've never come close to using even 4 GB before.
 Speaking of which, whatever happened with your D-based terminal 
 app from a while back?
I think I'm going to be using it now. It is working fine on this box whereas xterm is failing on me. I'm sure it has unicode issues though... but if I'm replacing my beloved, reliable xterm with it, I'll be forced to fix those eventually! I think I want to change the color scheme though. I like black xterms and my thing only does white. I think. Maybe I added an option and forgot what it is. The unicode support right now btw looks like I can handle individual code points fine, but not combining characters and surely not more. Individual codepoints are probably good enough for me though. The other part of my terminal emulator was also a gnu screen replacement. I got it to the point where it worked pretty well... but not well enough to break my inertia toward good old screen. Maybe I'll revisit that too though. BTW this system update seems to have changed my mutt too. Tab is bringing it back to the old items (marked O) instead of beeping when I'm out of new items (marked N). I'm not a big fan.
 Yeah, that's the downside of maintaining your own fork of stuff.
 Upstream (presumably) would've taken care of updating these 
 ugly bits of
 code, but you don't get the benefit of that unless you 
 regularly pull
 from upstream and merge, which is a lot of work to begin with.
and it kinda defeats the point: merging from upstream means I'm stuck with their new "features" too, unless I carefully go through and am really selective about keeping the changes... at which point, I think it is useless. If a bug bothered *me*, I'd fix it myself, so I don't need every bug fix from upstream anyway,
 you start out and no matter how clean the initial design
well, xterm isn't clean anyway :P
 Not just D modules, but many other aspects of D tend to keep 
 your program away from sinking into the rathole of patches upon 
 hacks upon bandages over patches, that every C/C++ program
 inevitably gravitates towards.
indeed.
 Shouldn't you be able to just install the good ole fonts and 
 expunge the ugly new ones?
I tried that and then X wouldn't start. Part of what annoys me is there isn't an xorg.conf anymore. Perhaps I could add one, but by default there isn't one at all and it tries to auto configure everything. That's great when it works, but I'm not sure what to do when it doesn't.
 The GUI emperor has no clothes, and I'm calling BS on the whole 
 movement! </soapbox>
I like guis sometimes. Though much of it is just me wanting to watch a youtube while doing something else in another few windows.
Nov 26 2014
next sibling parent reply "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Wed, Nov 26, 2014 at 09:21:21PM +0000, Adam D. Ruppe via Digitalmars-d wrote:
 On Wednesday, 26 November 2014 at 21:02:20 UTC, H. S. Teoh via Digitalmars-d
 wrote:
I have a high distrust of brand new *hardware*, because they
inevitably are gratuitously incompatible with my current software and
require new-fangled OSes bloated with features I never use.
Yeah. My old computer started randomly freezing up though and I don't like that. Lasted only about 4 years. Though I might have solved the problem by disabling the second processor core in it, it went 10 days without trouble after doing that, whereas before it only went 7.
That's not a good sign at all. Have you considered just replacing the power supply? The second last time (i.e., >10 years ago :-D) I had to replace my computer was when the PSU started to fail, causing random shutdowns, reboots, and freezes. Replacing the power supply brought things back to normal for a few more years. Then my previous PC (~8 years ago :-P) suffered a rather horrible catastrophe: I was out-of-town for a while and had deposited it for safekeeping at my cousin's, and then when I came back I had my roommate fetch it for me. Unfortunately, he left it in the trunk overnight, causing it to accumulate morning dew -- both outside and, unbeknownst to me, also inside. Stupidly thinking that it was good enough to wipe off the dew from the outer casing, I plugged it in and turned it on, and instantly there was the loudest buzzing sound I've ever heard coming from a PC, the apartment blew a fuse, and there was the smell of smoke in the air. I was so traumatized that I didn't dare look inside the chassis until a looong time later. :-P When I did, I saw exploded capacitors inside the PSU along with re-frozen arcs of exploded molten material shooting off in various directions inside the casing, and other such brown blobs of melted PSU components. But here's the funny thing... I took out the motherboard, bought a new chassis and PSU, and plugged it all in, and it booted with no problems!!!! Apparently, the PSU took the brunt of the short circuit caused by the moisture, and the mobo was unharmed. You have no idea what a huge sigh of relief I had... and the hardy little mobo continued running until about 4 years ago when I finally replaced it with a newer system because I was doing a lot of image rendering with povray and wanted to take advantage of a multicore CPU (multiple parallel renders) -- so I upgraded from single core to an AMD hexacore. :-D The mobo is probably still functional today -- I just have to find a spare chassis to host it. So yeah, tl;dr, PSU's tend to last shorter than mobo's. You might be lucky that your mobo is still fine, it's just the PSU that's starting to die.
 But I ordered the new hardware just in case it failed completely, and
 when it all got here yesterday, I figured might as well give it a try.
IME, that's almost a sure setup for disappointment. :-P The first time I got my new mobo, I suddenly realized to my horror that the mobo is incompatible with my old RAM, sound card, AGP video card, and ... hard drives(!). So I had to go out and buy a whole buncha new stuff and adaptors. That'll teach me a lesson on not doing my research properly before shelling out the cash...
 BTW this is my first computer without a floppy disk drive. I feel
 naked without one. Thankfully, it has an internal speaker though, I
 still have my beloved beeps.
Haha... right now I'm in the predicament of no longer having a floppy drive, yet my old electronic piano still uses one, so now I can no longer copy my recordings to my PC. :-( But speaker beeps... I hate those!!! I hate them so much, that not only I didn't compile the driver into my custom kernel, I didn't even connect the wires from the mobo to the speaker. :-P I like my PC to be completely mute except when I ask it to make a sound.
You're brave. :-P  Me, I've given up on xterm long ago, and use
rxvt-unicode these days.
I never got into rxvt-unicode. I use xterm and plain rxvt together. I put rxvt on the right application menu key (next to right ctrl) to pop it up instantly and I dismiss it just as fast. I sometimes have ten rxvts open though who are only acting as controlling ttys for other applications. The megabyte of virtual space it saves over xterm seems important to me....
I find xterm far too bloated and quirky for my tastes. I also like to minimize RAM usage where possible. Sadly, RAM usage for Xorg is never controllable, same goes for all browsers except Elinks. If only Elinks supported Javascript and CSS (at least rudimentary CSS), I'd be quite tempted to dump GUI browsers completely for it.
 ...though the new box has 16 GB of memory and I've never come close to
 using even 4 GB before.
Really?? I would've thought DMD easily soaks up 4GB if you do enough recursive CTFE / template metaprogramming... :-P
Speaking of which, whatever happened with your D-based terminal app
from a while back?
I think I'm going to be using it now. It is working fine on this box whereas xterm is failing on me. I'm sure it has unicode issues though... but if I'm replacing my beloved, reliable xterm with it, I'll be forced to fix those eventually!
Yeah! I'd love to see the day when I can use a completely "D-certified" terminal emulator. :-P
 I think I want to change the color scheme though. I like black xterms
 and my thing only does white. I think. Maybe I added an option and
 forgot what it is.
I like off-white terminals. Better yet, if your terminal could support the xterm 256-color escape sequences... I'd totally make my text-based puzzle solver game make full use of that. :-P Oh wait, your terminal *does* already support inline images...
 The unicode support right now btw looks like I can handle individual
 code points fine, but not combining characters and surely not more.
 Individual codepoints are probably good enough for me though.
Shouldn't byGrapheme handle most of that out-of-the-box already? I'm assuming if you have the right fonts installed all you need to do is to hand off the grapheme sequence to the font rendering library, and it should do the Right Thing(tm)? Or is that a nave assumption?
 The other part of my terminal emulator was also a gnu screen
 replacement. I got it to the point where it worked pretty well... but
 not well enough to break my inertia toward good old screen. Maybe I'll
 revisit that too though.
Ooooh, I'd love that! I do use screen a lot, but some aspects of it annoy me a lot. Like the non-transitivity of terminal settings, so $TERM doesn't get set properly, and even when it does, screen sometimes misinterprets sequences not meant for it. Ideally, screen (or your replacement thereof) should be able to detect the end user's terminal (even if it's proxied via ssh, etc.) and do the Right Thing(tm) on the server end so that applications get the right $TERM settings.
 BTW this system update seems to have changed my mutt too. Tab is
 bringing it back to the old items (marked O) instead of beeping when
 I'm out of new items (marked N). I'm not a big fan.
I have a muttrc that basically completely remaps most of the keys... I just copy it to every new PC / server / VPS I use regularly, and it saves a lot of frustration. :-)
Yeah, that's the downside of maintaining your own fork of stuff.
Upstream (presumably) would've taken care of updating these ugly bits
of code, but you don't get the benefit of that unless you regularly
pull from upstream and merge, which is a lot of work to begin with.
and it kinda defeats the point: merging from upstream means I'm stuck with their new "features" too, unless I carefully go through and am really selective about keeping the changes... at which point, I think it is useless. If a bug bothered *me*, I'd fix it myself, so I don't need every bug fix from upstream anyway,
Right, so basically you lose the benefit of having upstream do the menial fixes like rename the include guard (which shouldn't even be there in the first place, but hey, C/C++ *is* the land of ugly hackery).
you start out and no matter how clean the initial design
well, xterm isn't clean anyway :P
Touch. [...]
Shouldn't you be able to just install the good ole fonts and expunge
the ugly new ones?
I tried that and then X wouldn't start. Part of what annoys me is there isn't an xorg.conf anymore. Perhaps I could add one, but by default there isn't one at all and it tries to auto configure everything. That's great when it works, but I'm not sure what to do when it doesn't.
Haha, yeah... I'd have preferred that the autogenerated config is saved somewhere, so that when the automatic system gets it wrong, I at least have a fighting chance to figure it out and fix it. I think at some point it *used* to do that. But nowadays it's just too black-boxy and I have to dig into Xorg.*.log and hope I can actually guess what went wrong. But how to fix it... no idea at all. :-/
The GUI emperor has no clothes, and I'm calling BS on the whole
movement!  </soapbox>
I like guis sometimes. Though much of it is just me wanting to watch a youtube while doing something else in another few windows.
Well, there *are* times when GUIs are appropriate... like when watching youtube, or browsing in general (most websites suck so bad with a non-GUI interface it's not even funny... gone are the days when most of the content of a webpage is useful information, nowadays finding information is like finding a needle in a haystack of fluff and eye-candy -- but that belongs in another rant :-P), or hand-drawing diagrams in vector graphics, or doing image/video editing (though even that is mostly scriptable thanks to imagemagick). But I find the current bandwagon of shoehorning *every* possible user interaction to point-n-grunt GUI rather silly. Where would human society be if we had no language with grammatical structures capable of expressing complex ideas, but had to resort to point-n-grunts to communicate with each other? Yet when it comes to HCI the current trend is exactly to discard the medium of expressing complex concepts via grammatical constructions from simpler atoms (i.e., the Unix command-line), in favor of point-n-grunt rodent-dependent UIs. Supposedly that's "more productive", though I'm honestly baffled how anyone could believe that. T -- Who told you to swim in Crocodile Lake without life insurance??
Nov 26 2014
next sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Wednesday, 26 November 2014 at 22:22:43 UTC, H. S. Teoh via 
Digitalmars-d wrote:
 Have you considered just replacing the power supply?
That was one of my first thoughts, my last computer refit was caused by a PSU failure. I did some measurements on it and everything looked normal.... in fact, EVERYTHING looked normal, the only time I could consistently reproduce the problem on-demand was running memtest with SMP turned on. That's why I figured the problem was with the dual-core and disabled it. But even now, I'm not 100% convinced that was the problem, maybe it was the power supply, under stress not keeping up. I didn't measure it at higher draw. I figure I'll set up the old computer still - pull my IDE hard drive out of the upstairs storage box to see about booting it.... though that i think has a 32 bit kernel on it... well, i can tackle that later. Anyway, I figure I'll set it up somewhere and still try to use it and see if the fix actually works in the longer run, but I didn't want to depend on it because these kinds of problems just tend to get worse.
 But here's the funny thing... I took out the motherboard, 
 bought a new chassis and PSU, and plugged it all in, and
 it booted with no problems!!!!
wow, sounds like luck to me :P
 IME, that's almost a sure setup for disappointment. :-P
So is trying anything new. Except cheesecake, I was convinced to make a cheesecake this August and even at a piece myself when there was leftovers... and it was AMAZING. I have one in the oven right now! But mostly: change... bah, humbug.
 I like my PC to be
 completely mute except when I ask it to make a sound.
That's actually exactly *why* I *like* the speaker. I have ways of making it only work when I want it to (mostly my heavily customized software stack...) and having the separate channel from the main speakers lets me keep a clean separation. I use the PC speaker beeps to quickly and unobstructively* notify me about new events. Emails, instant messages, etc., each has its own beep tone. I can turn off the main audio speakers or use them for different things at various volumes without worrying about my notification beeps coming in nasty. I hate it when I'm cranking some noise and then someone FB messages me and it is like PLUNK and my ear drums explode. The speaker beep is nice and consistent. * One time, I used a computer with a MEGA LOUD BEEP and that drive me nuts. Defeats the whole point to me. But I've been lucky with just-right beeps out of my own desktops.
 Really?? I would've thought DMD easily soaks up 4GB if you do 
 enough recursive CTFE / template metaprogramming... :-P
I run 32 bit dmd, it'd be killed before then :P
 I like off-white terminals. Better yet, if your terminal could 
 support the xterm 256-color escape sequences...
I'm pretty sure it does support these already.... yeah, line 1437 of terminalemulator.d has it. I implemented a 256 color palette at one point but the case 38 there for xterm 256 colors actually draws in truecolor. There's also palette swap capabilities in there. I went kinda nuts on features in that thing. One of them is also a copy/paste extension that can be forwarded through nested terminals. The Windows version can do clean cut+paste with linux apps! (The Windows versions are cool btw, one is a GUI just like the linux one - like identical, since it uses an embedded font and font renderer too, and the other is a win32 console version, which is surprisingly elegant. I like it a lot. But not enough to kill PuTTY yet (especially since my windows version depends on plink to communicate. It just speaks to a piped process instead of knowing ssh or anything itself.)
 Shouldn't byGrapheme handle most of that out-of-the-box already?
Maybe, I haven't tried.
 misinterprets sequences not meant for it. Ideally, screen (or 
 your replacement thereof) should be able to detect the end 
 user's terminal (even if it's proxied via ssh, etc.) and do the 
 Right Thing(tm)
The approach I took is similar to screen: it intercepts all the escape sequences and handles them itself. My screen replacement has two parts: attach and detachable. You can see the source on my github terminal-emulator project. Attach uses terminal.d to read user input events and forward them down the line. detachable uses the terminal emulator core to maintain an internal screen buffer. When you attach to it, it sends commands to draw itself and a few other state issues. When it changes, it forwards those changes outward. But ultimately, the detachable thing is just a terminal emulator that redraws itself through a unix socket instead of straight to the screen.
 I have a muttrc that basically completely remaps most of the 
 keys...
I kept my muttrc (I didn't copy my whole /home/me directory because I kinda want to clean it out - it has like 2,000 files on the top level - but I copied parts of it to the new one and the old is available on demand) but the new mutt changed a behavior I had gotten used to. I might remap the key or just hack the source, idk yet.
 point-n-grunt rodent-dependent UIs. Supposedly that's "more 
 productive",though I'm honestly baffled how anyone could 
 believe that.
indeed
Nov 26 2014
parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
Found a bug in the terminal emulator immediately after switching 
my hotkeys to use it - there was an escape sequence sent to it 
that the controlling terminal usually responded to and now it 
didn't have one.

And vim apparently changed its auto indent behavior. Thanks, now 
my habit of hitting enter then tab is breaking the code. So 
angry, this is stupid beyond belief. vim usually impresses me 
with its goodness. That makes this BETRAYAL hurt all the more.

et tu, vim? et tu?


BTW  nogc should have an escape hatch at least for assert(0, 
allocate_a_message). The program is dying anyway, at least let me 
conveniently format a descriptive error message.
Nov 26 2014
next sibling parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Thu, 27 Nov 2014 03:51:58 +0000
"Adam D. Ruppe via Digitalmars-d" <digitalmars-d puremagic.com> wrote:

 BTW  nogc should have an escape hatch at least for assert(0,=20
 allocate_a_message). The program is dying anyway, at least let me=20
 conveniently format a descriptive error message.
hey, but we can hack it! import std.traits; auto assumeNoGC(T) (T t) if (isFunctionPointer!T || isDelegate!T) { enum attrs =3D functionAttributes!T | FunctionAttribute.nogc; return cast(SetFunctionAttributes!(T, functionLinkage!T, attrs)) t; } void test () nogc { assert(0, assumeNoGC(() { import std.format : format; return "%s".forma= t("hi")~" there!"; })()); } void main () nogc { test(); }
Nov 26 2014
prev sibling parent reply "deadalnix" <deadalnix gmail.com> writes:
On Thursday, 27 November 2014 at 03:51:59 UTC, Adam D. Ruppe 
wrote:
 BTW  nogc should have an escape hatch at least for assert(0, 
 allocate_a_message). The program is dying anyway, at least let 
 me conveniently format a descriptive error message.
Ownership would solve this.
Nov 26 2014
next sibling parent reply "weaselcat" <weaselcat gmail.com> writes:
On Thursday, 27 November 2014 at 05:04:20 UTC, deadalnix wrote:
 On Thursday, 27 November 2014 at 03:51:59 UTC, Adam D. Ruppe 
 wrote:
 BTW  nogc should have an escape hatch at least for assert(0, 
 allocate_a_message). The program is dying anyway, at least let 
 me conveniently format a descriptive error message.
Ownership would solve this.
Is there any work being done on ownership? Adam D. Ruppe : Check out st from suckless, it was made because xterm is unmaintainable. Also, consider a distro from this century ;)
Nov 26 2014
next sibling parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Thu, 27 Nov 2014 05:12:51 +0000
weaselcat via Digitalmars-d <digitalmars-d puremagic.com> wrote:

  Adam D. Ruppe : Check out st from suckless, it was made because
 xterm is unmaintainable. Also, consider a distro from this
 century ;)
heh, that was the base of my own terminal emulator. just because that was the only TE with non-writeonly code. ;-)
Nov 26 2014
prev sibling next sibling parent "deadalnix" <deadalnix gmail.com> writes:
On Thursday, 27 November 2014 at 05:12:52 UTC, weaselcat wrote:
 On Thursday, 27 November 2014 at 05:04:20 UTC, deadalnix wrote:
 On Thursday, 27 November 2014 at 03:51:59 UTC, Adam D. Ruppe 
 wrote:
 BTW  nogc should have an escape hatch at least for assert(0, 
 allocate_a_message). The program is dying anyway, at least 
 let me conveniently format a descriptive error message.
Ownership would solve this.
Is there any work being done on ownership? Adam D. Ruppe : Check out st from suckless, it was made because xterm is unmaintainable. Also, consider a distro from this century ;)
I've made some proposal, but it looks like the first stone we want to have is scope.
Nov 26 2014
prev sibling parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Thursday, 27 November 2014 at 05:12:52 UTC, weaselcat wrote:
  Adam D. Ruppe : Check out st from suckless, it was made because
 xterm is unmaintainable.
Cool. Though my from-scratch terminal emulator already works pretty well, just a few bugs popping up now that I'm actually relying on it, but I'll fix them as they come up.
 Also, consider a distro from this century ;)
The problem is that I hate new things! What I should have done is never updated. But oh well, it is good enough now and besides, the impetus to ditch more of the not-written-by-me software i was using just makes me cooler.
Nov 27 2014
prev sibling parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Thursday, 27 November 2014 at 05:04:20 UTC, deadalnix wrote:
 Ownership would solve this.
Yup.
Nov 27 2014
prev sibling parent Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
On 11/26/2014 05:20 PM, H. S. Teoh via Digitalmars-d wrote:
 (most websites suck so bad with a
 non-GUI interface it's not even funny... gone are the days when most of
 the content of a webpage is useful information, nowadays finding
 information is like finding a needle in a haystack of fluff and
 eye-candy -- but that belongs in another rant :-P)
Hear Hear! Web devs and online content providers alike seem far more interested in developing god-awful interfaces to wrap their content with then actually providing content. The web isn't about content anymore, it's just about JS/HTML m*sterbation and fondling the latest fadwords. (I really, genuinely, wish those people would leave the industry and move to the fashion world where they clearly belong.) I long time ago, there was a hacker/coder/something like that e-zine that didn't come in an actual document format, but came as an EXE, with the content baked directly into their own [shitty] viewer. I thought that was the dumbest idea ever, and figured that alone guaranteed it would never reach 90% of the audience it deserved to reach (some of the content was kinda interesting). But amazingly, *EVERYTHING* works that way now. Well, except that the exe-zine actually performed well and didn't demand to soak up every last drop of memory and CPU from 64-bit multi-core (of which none existed anyway).
 or doing image/video editing (though even
 that is mostly scriptable thanks to imagemagick).
Or AviSynth (not that I've really done much with either).
 Supposedly that's "more productive",
 though I'm honestly baffled how anyone could believe that.
iOS and Android conclusively prove that people have NO comprehension whatsoever of what "easy to use" means. They're easy to *LEARN*[1]. It amazes me that people have become so stupid they no longer know the difference between "learning" and "using". [1] Although, a large part of those things being "easy to learn" is simply because they take a page out of the salesman's handbook and cleverly avoid calling them what they are: "computers". Instead, they trick people into *not* compulsively shutting their brains off and conveniently "forgetting" basic literacy (as people do with alarming frequency) by waving around the bullshit of "Oh, it's not a 'computer'! It's a 'telephone'!" "Oh, really? I know how to use a phone! So with this wondrously genius iPhone, now I *don't* have to deliberately shut my brain off and pretend to be a drooling illiterate retard!...Wow, look at that! Now that I'm *not* feigning retardation, it's become so easy to use, even though nothing is discoverable or even readable without a rosetta stone and a microscope, none of the input works reliably, none of the software works like any of the other software, and it now takes twice as long to accomplish half as much! Amazing!" Goddamn morons.
Nov 29 2014
prev sibling next sibling parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Wed, 26 Nov 2014 14:20:37 -0800
"H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> wrote:

 The other part of my terminal emulator was also a gnu screen
 replacement. I got it to the point where it worked pretty well... but
 not well enough to break my inertia toward good old screen. Maybe I'll
 revisit that too though.
=20 Ooooh, I'd love that! I do use screen a lot, but some aspects of it annoy me a lot. Like the non-transitivity of terminal settings, so $TERM doesn't get set properly, and even when it does, screen sometimes misinterprets sequences not meant for it. Ideally, screen (or your replacement thereof) should be able to detect the end user's terminal (even if it's proxied via ssh, etc.) and do the Right Thing(tm) on the server end so that applications get the right $TERM settings.
i was never big fan of screen and i never used any of it's advanced features, so once i dumped it in favor of dtach. and now i'm really happy, 'cause dtach does exactly what i want: allows me to detach from console program and then attach to it again. it intercepts only one hotkey and doesn't try to mess with escape codes at all. love it. sure, it doesn't keep output history, you have to press something like ctrl+l to redraw the screen in fullscreen app (if that app supports it) and so on, but my, it's nothing compared to constant fighting with 'screen', it's configs, it's habit to steal and reinterpret escapes... now i'm happy dtach user.
Nov 26 2014
prev sibling parent reply "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Thu, Nov 27, 2014 at 12:33:25AM +0200, ketmar via Digitalmars-d wrote:
[...]
 i was never big fan of screen and i never used any of it's advanced
 features, so once i dumped it in favor of dtach. and now i'm really
 happy, 'cause dtach does exactly what i want: allows me to detach from
 console program and then attach to it again. it intercepts only one
 hotkey and doesn't try to mess with escape codes at all. love it.
 
 sure, it doesn't keep output history, you have to press something like
 ctrl+l to redraw the screen in fullscreen app (if that app supports
 it) and so on, but my, it's nothing compared to constant fighting with
 'screen', it's configs, it's habit to steal and reinterpret escapes...
 
 now i'm happy dtach user.
Whoa. Just looked up dtach... I like it!!!! I think I might start using it in favor of screen, which like you said is just a mess. Thanks for the tip!! T -- I've been around long enough to have seen an endless parade of magic new techniques du jour, most of which purport to remove the necessity of thought about your programming problem. In the end they wind up contributing one or two pieces to the collective wisdom, and fade away in the rearview mirror. -- Walter Bright
Nov 26 2014
parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Wednesday, 26 November 2014 at 22:39:52 UTC, H. S. Teoh via 
Digitalmars-d wrote:
 Whoa. Just looked up dtach... I like it!!!! I think I might 
 start using it in favor of screen, which like you said is just 
 a mess.
I've tried dtach before but never got into it. There's actually a handful of screen's messier features that I like...
Nov 26 2014
prev sibling next sibling parent reply "Joakim" <dlang joakim.fea.st> writes:
On Wednesday, 26 November 2014 at 21:02:20 UTC, H. S. Teoh via
Digitalmars-d wrote:
 <soapbox> This is one of the reasons I've completely given up 
 on the
 whole "desktop metaphor" movement. It has become all glitz and 
 no
 substance IMNSHO; all about this font vs. that font rather than 
 actually
 solving real problems. Give me ratpoison and a bare terminal 
 emulator
 any day, and my productivity gets boosted 300%. Even when I'm 
 using
 Windows, that purportedly sports "better" UI design than Linux, 
 I find
 myself spending more time fighting with the UI than actually 
 getting
 anything done. The GUI emperor has no clothes, and I'm calling 
 BS on the
 whole movement! </soapbox>
That's because GUIs are not aimed at highly technical power users like you, but for most people, who don't want to memorize a bunch of technical commands and barely know how to type. They would be much slower with ratpoison and a terminal than you are with a GUI. ;) Touch similarly brought computing to a billion more people, while taking another step backwards in interaction bandwidth from the desktop GUI. The cruder you make the tool, the easier it is for people to grasp. However, I'm looking forward to voice recognition and some sort of hand gesture input becoming the dominant interfaces in the coming years. Those will be even easier to use than anything so far, and could be much faster than even your current keyboard-driven software.
Nov 26 2014
next sibling parent reply ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Thu, 27 Nov 2014 06:50:59 +0000
Joakim via Digitalmars-d <digitalmars-d puremagic.com> wrote:

 However, I'm looking forward to voice recognition and some sort
 of hand gesture input becoming the dominant interfaces in the
 coming years.  Those will be even easier to use than anything so
 far, and could be much faster than even your current
 keyboard-driven software.
i just imagined some sort of i... human standing against the wall, gesticulating like mad and talking nonsense to the void... creepy. i bet that such intefaces will be widespread, but faster and more usable? nope. i can type much faster than i'm talking, i can edit what i typed and... and just won't buy it. but yes, they *seems* to be better than plain old keyboard.
Nov 26 2014
parent reply "Joakim" <dlang joakim.fea.st> writes:
On Thursday, 27 November 2014 at 07:16:17 UTC, ketmar via 
Digitalmars-d wrote:
 i just imagined some sort of i... human standing against the 
 wall,
 gesticulating like mad and talking nonsense to the void... 
 creepy.
Do you think most people don't find it creepy now, when they see you staring into the glow of your monitor with your fingers madly thrumming away at a keyboard? ;)
 i bet that such intefaces will be widespread, but faster and 
 more
 usable? nope. i can type much faster than i'm talking, i can 
 edit what
 i typed and... and just won't buy it. but yes, they *seems* to 
 be
 better than plain old keyboard.
You would have to be a very slow talker if you could type faster. You can edit what you spoke with voice commands too, people do it now. On Thursday, 27 November 2014 at 08:17:03 UTC, deadalnix wrote:
 On Thursday, 27 November 2014 at 06:51:00 UTC, Joakim wrote:
 That's because GUIs are not aimed at highly technical power 
 users
 like you, but for most people, who don't want to memorize a 
 bunch
 of technical commands and barely know how to type.  They would 
 be
 much slower with ratpoison and a terminal than you are with a
 GUI. ;)
I hear that false dichotomy so many time that I lost count. That's is an idiotic mindset. You can have a gui that is also manipulable all via keyboard in an efficient manner. gnome-do is a good example of this: https://www.youtube.com/watch?v=oTxqE3M1k0U Because of that mindset, we are in 2014 and all terminal emulator are complete garbage to the point I ended up coding my own (which is garbage as well but at least does what I do and I can fix it when it doesn't, and it is in D :) ).
Except I never said you couldn't have keyboard-manipulable GUIs, just that that's not the norm, as you yourself admit, because most people don't want to learn how to use those either. gnome-do looks nice: I often use the search box in the Windows Start menu to launch applications and get into the right system settings, ie by using the keyboard. On Thursday, 27 November 2014 at 14:56:49 UTC, Adam D. Ruppe wrote:
 On Thursday, 27 November 2014 at 06:51:00 UTC, Joakim wrote:
 However, I'm looking forward to voice recognition
I hate voice recognition because it doesn't actually think about what you're saying... it is just another way to input crude information into the same idiotic core, and keyboard symbols are better.
Well, the "idiotic core" is common to either input, and most people talk much faster than they can type: http://en.wikipedia.org/wiki/Words_per_minute
 What would be interesting - though not something I want in the 
 real world, I kinda enjoy getting my paycheck - is a voice AI 
 like they have in Star Trek.

 "Computer, I need a terminal emulator."

 a few beeps, then it pops one up

 "No, that sucks, make the mouse wheel work."

 the computer beeps as it looks at existing things to figure out 
 what you meant by "work" then adjusts the program


 Self-programming computers, now *that's* a voice interface.
We still have some way to go to get the computer to accurately translate all normally spoken speech to text, gotta get that done first. On Thursday, 27 November 2014 at 18:11:03 UTC, H. S. Teoh via Digitalmars-d wrote:
 On Thu, Nov 27, 2014 at 02:56:48PM +0000, Adam D. Ruppe via 
 Digitalmars-d wrote:
 On Thursday, 27 November 2014 at 06:51:00 UTC, Joakim wrote:
However, I'm looking forward to voice recognition
I hate voice recognition because it doesn't actually think about what you're saying... it is just another way to input crude information into the same idiotic core, and keyboard symbols are better.
+1000!! I can communicate with my computer in far more efficiently and in a far more precise way than I can speak within the same time. I mean, if I wanted to say: const(int[]) myFunc(T)(const(T)[] input) { ... } what would I have to pronounce? "const open parenthesis int open square bracket close square bracket close parenthesis space em why capital eff you en see open parenthesis capital tee close parenthesis open parenthesis const open parenthesis tee close parenthesis open square bracket close square bracket space input close parenthesis space open brace ..." ?? And what of Vim editing commands? "Move 5 lines down, 6 words to the right, 2 characters to the right, substitute next 5 characters, aye bee see dee ee, end, save file"? I could type "5j6w2l5sabcde<ESC>:wq<enter>" in a fraction of the time.
Do you actually sit there and count the number of lines, words, and characters so you can type out a command like that? Sounds tedious, I'd just use search to jump to the word, ie "/uvwxyz<enter>", then replace the letters. Similarly, you'd say, "Go to uvwxyz and replace with abcde<pause>save and quit." I'd be done with that long before you're done counting out the number of words to the right. ;) As for programming, language syntax is currently optimized for keyboard input, it will have to be redone for voice input.
 Not to mention how many times I'd have to correct the speech 
 recognizer
 software which will inevitably get half the characters wrong 
 because of
 ambiguous pronunciation (by "queue" do you mean Q-U-E-U-E or 
 the letter
 Q?).
There are heuristics that can get such homonyms right based on the context. As voice recognition advances, they are being applied and increasing accuracy by leaps and bounds. One nice consequence of the current mobile boom is that a ton of work is getting put into improving the speech recognition engines of Google Now, Siri, and Cortana.
 Please, give me a keyboard anytime.
Only if you want to go really slow, like people who still write stuff out longhand or use mechanical typewriters these days. :) Take a look at the wpm numbers I linked above, voice is much faster than typing and recognition is becoming much more accurate.
Nov 27 2014
next sibling parent reply ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Thu, 27 Nov 2014 19:58:32 +0000
Joakim via Digitalmars-d <digitalmars-d puremagic.com> wrote:

 i bet that such intefaces will be widespread, but faster and=20
 more
 usable? nope. i can type much faster than i'm talking, i can=20
 edit what
 i typed and... and just won't buy it. but yes, they *seems* to=20
 be
 better than plain old keyboard.
=20 You would have to be a very slow talker if you could type faster.=20
assert(0, assumeNoGC(() { import std.format : format; return "%s".format(= "hi")~" there!"; })()); anyone? nononono, i DON'T want to voice that! ah, spaces must be voiced to, 'cause i want "format : format", not "format:format". speech recognizer that knows everything about my style in each computer language i ever used? no, thanks, i certainly don't want to configure it, i'll die of the old age before completing that task.
   You can edit what you spoke with voice commands too, people do=20
 it now.
vim anyone? i can't even speak that vim commands (hey, i don't remember 'em, my fingers remember... but my fingers can't talk). ah, and occasional "ah, hello, honey, how do... DAMN IT! FSCK! GET LOST! oh, no, honey, i'm not talking with you... what do you mean by 'you never talking with me'? ehm... shit."
Nov 27 2014
parent reply "Joakim" <dlang joakim.fea.st> writes:
On Thursday, 27 November 2014 at 20:09:04 UTC, ketmar via 
Digitalmars-d wrote:
 On Thu, 27 Nov 2014 19:58:32 +0000
 Joakim via Digitalmars-d <digitalmars-d puremagic.com> wrote:

 i bet that such intefaces will be widespread, but faster and 
 more
 usable? nope. i can type much faster than i'm talking, i can 
 edit what
 i typed and... and just won't buy it. but yes, they *seems* 
 to be
 better than plain old keyboard.
You would have to be a very slow talker if you could type faster.
assert(0, assumeNoGC(() { import std.format : format; return "%s".format("hi")~" there!"; })()); anyone? nononono, i DON'T want to voice that!
"assert zero<pause>assumeNoGC lambda import standard format symbol format done return string stringformat done dot format string hi done append string space there bang done done<pause>" I just tossed that off from the top of my head so you can always find a hole or two in it, but the point is that you'd use a vocal shorthand and the voice IDE would automatically pop up two arguments for the assert, so simply pausing would take you to the next one, just as keyboard-oriented IDEs provide such niceties today. Eventually, programming language syntax will have to be redone for voice, as I noted before.
 ah, spaces must be voiced
 to, 'cause i want "format : format", not "format:format".

 speech recognizer that knows everything about my style in each
 computer language i ever used? no, thanks, i certainly don't 
 want to
 configure it, i'll die of the old age before completing that 
 task.
You'll simply hand the recognizer software a bunch of old code that exemplifies your programming style and it'll figure out that you prefer spaces there and automatically add them for you, without having to say it or configure it. :) That's actually fairly easy, if your style is at all consistent.
   You can edit what you spoke with voice commands too, people 
 do it now.
vim anyone? i can't even speak that vim commands (hey, i don't remember 'em, my fingers remember... but my fingers can't talk).
Already addressed with a specific example from Teoh before.
 ah, and occasional "ah, hello, honey, how do... DAMN IT! FSCK! 
 GET
 LOST! oh, no, honey, i'm not talking with you... what do you 
 mean by
 'you never talking with me'? ehm... shit."
"break<pause>ah, hello, honey, how do..."
Nov 27 2014
next sibling parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Thu, 27 Nov 2014 20:46:29 +0000
Joakim via Digitalmars-d <digitalmars-d puremagic.com> wrote:

 On Thursday, 27 November 2014 at 20:09:04 UTC, ketmar via=20
 Digitalmars-d wrote:
 On Thu, 27 Nov 2014 19:58:32 +0000
 Joakim via Digitalmars-d <digitalmars-d puremagic.com> wrote:

 i bet that such intefaces will be widespread, but faster and=20
 more
 usable? nope. i can type much faster than i'm talking, i can=20
 edit what
 i typed and... and just won't buy it. but yes, they *seems*=20
 to be
 better than plain old keyboard.
=20 You would have to be a very slow talker if you could type=20 faster.
assert(0, assumeNoGC(() { import std.format : format; return=20 "%s".format("hi")~" there!"; })()); anyone? nononono, i DON'T want to voice that!
=20 "assert zero<pause>assumeNoGC lambda import standard format=20 symbol format done return string stringformat done dot format=20 string hi done append string space there bang done done<pause>"
ugh... i don't even have to type the whole words with keyboard. but i like the idea of shortening "assert" to "ass"... ;-) it's starting to remind me my 4-letter word mumbling when i writing the code. ;-)
 You'll simply hand the recognizer software a bunch of old code=20
 that exemplifies your programming style and it'll figure out that=20
 you prefer spaces there and automatically add them for you,=20
 without having to say it or configure it. :) That's actually=20
 fairly easy, if your style is at all consistent.
that recognizer still must be able do do semantic analysis on each language i want to use, or it will fail on almost any compilcated sentense.
 ah, and occasional "ah, hello, honey, how do... DAMN IT! FSCK!=20
 GET
 LOST! oh, no, honey, i'm not talking with you... what do you=20
 mean by
 'you never talking with me'? ehm... shit."
"break<pause>ah, hello, honey, how do..."
so i can't code and talk simultaneously anymore? ah, that's what i call "new technologies"! ;-)
Nov 27 2014
prev sibling parent =?UTF-8?B?IkrDqXLDtG1lIE0uIEJlcmdlciI=?= <jeberger free.fr> writes:
Joakim wrote:
 ah, and occasional "ah, hello, honey, how do... DAMN IT! FSCK! 
 GET
 LOST! oh, no, honey, i'm not talking with you... what do you 
 mean by
 'you never talking with me'? ehm... shit."
"break<pause>ah, hello, honey, how do..."
As everybody knows, this works just fine: https://www.youtube.com/watch?v=mWZLa4AnN5k ;) Jerome
Nov 28 2014
prev sibling next sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Thursday, 27 November 2014 at 19:58:33 UTC, Joakim wrote:
 You would have to be a very slow talker if you could type 
 faster.
I don't think it would be a one-to-one correspondence. I saw a youtube where a guy had rigged a voice interface for code and he didn't say things like "foo left paren bar comma baz right paren semicolon" it was more like "foo bah bar *click*" - he made a new language with various sounds. On the other hand, by the same reasoning, talking faster than typing doesn't necessarily match up because like how would you say "a = *b | c"? I would probably say something like "a equals what's pointed to by by bitor c"... and I type it at about the same speed as I say it since there's more syllables than symbols. Autocomplete and such can give an edge to the typing too. I don't think talk-coding would be slow - in my head, sometimes I say these things as my fingers translate it to code - but I don't think it would be much faster either. Now, talking vs typing prose is a different story, my fingers couldn't keep up with my brain on writing this email. But with code, my fingers typically aren't the bottleneck. (and it certainly wouldn't revolutionize the industry, where the slowest part for me tends to be figuring out WTF the customer is asking for anyway...)
 Windows Start menu to launch applications and get into the 
 right system settings, ie by using the keyboard.
A friend asked me over the weekend how to get to the calculator on Windows 8. One person was giving the old Win 95 answer "click start, go to programs, accessories, then click calculator". That doesn't work on Win8... and I think the new way is so much better: I said "hit that windows button on the keyboard then type "calculator" and hit enter". She did that and agreed it is super easy. I think the biggest benefit of a GUI isn't so much ease of use as the ability to browse the options. If she didn't know there was a calculator, she would never have thought to just type the word, but might have noticed the icon while looking at the start menu. But if you already know what you want, it is hard to beat just asking for it directly.
 We still have some way to go to get the computer to accurately 
 translate all normally spoken speech to text, gotta get that 
 done first.
Right.
Nov 27 2014
next sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
One thing I actually *like* about the change: I didn't force the 
linux console to use VGA text mode this time. I usually do 
because I adore the vga text mode, it is so beautiful and elegant.

But one big advantage to letting new linux do its thing with the 
framebuffer console: switching VTs between it and X is *fast*. 
Like instant fast. I like that a lot.
Nov 27 2014
next sibling parent "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Fri, Nov 28, 2014 at 03:35:17AM +0000, Adam D. Ruppe via Digitalmars-d wrote:
 One thing I actually *like* about the change: I didn't force the linux
 console to use VGA text mode this time. I usually do because I adore
 the vga text mode, it is so beautiful and elegant.
 
 But one big advantage to letting new linux do its thing with the
 framebuffer console: switching VTs between it and X is *fast*. Like
 instant fast. I like that a lot.
Yeah, kernel mode switching is teh k00l. T -- A linguistics professor was lecturing to his class one day. "In English," he said, "A double negative forms a positive. In some languages, though, such as Russian, a double negative is still a negative. However, there is no language wherein a double positive can form a negative." A voice from the back of the room piped up, "Yeah, yeah."
Nov 27 2014
prev sibling parent "deadalnix" <deadalnix gmail.com> writes:
On Friday, 28 November 2014 at 03:35:19 UTC, Adam D. Ruppe wrote:
 One thing I actually *like* about the change: I didn't force 
 the linux console to use VGA text mode this time. I usually do 
 because I adore the vga text mode, it is so beautiful and 
 elegant.

 But one big advantage to letting new linux do its thing with 
 the framebuffer console: switching VTs between it and X is 
 *fast*. Like instant fast. I like that a lot.
Vasistas ? (for these who don't get it: http://en.wiktionary.org/wiki/vasistas )
Nov 27 2014
prev sibling parent reply "Joakim" <dlang joakim.fea.st> writes:
On Friday, 28 November 2014 at 01:04:40 UTC, Adam D. Ruppe wrote:
 On Thursday, 27 November 2014 at 19:58:33 UTC, Joakim wrote:
 You would have to be a very slow talker if you could type 
 faster.
I don't think it would be a one-to-one correspondence. I saw a youtube where a guy had rigged a voice interface for code and he didn't say things like "foo left paren bar comma baz right paren semicolon" it was more like "foo bah bar *click*" - he made a new language with various sounds.
Yeah, that's what I tried to give an example of to ketmar above.
 On the other hand, by the same reasoning, talking faster than 
 typing doesn't necessarily match up because like how would you 
 say "a = *b | c"? I would probably say something like "a equals 
 what's pointed to by by bitor c"... and I type it at about the 
 same speed as I say it since there's more syllables than 
 symbols. Autocomplete and such can give an edge to the typing 
 too.
It "wins" there because the only reason you're using single characters is because they're faster to type, despite not being a good coding practice for future maintenance, ie what do a, b, and c actually signify? You will be able to give each of those variables actual names quicker when speaking and the resulting code will be more maintainable.
 I don't think talk-coding would be slow - in my head, sometimes 
 I say these things as my fingers translate it to code - but I 
 don't think it would be much faster either.

 Now, talking vs typing prose is a different story, my fingers 
 couldn't keep up with my brain on writing this email. But with 
 code, my fingers typically aren't the bottleneck.


 (and it certainly wouldn't revolutionize the industry, where 
 the slowest part for me tends to be figuring out WTF the 
 customer is asking for anyway...)
I agree with most of this, the bottleneck for coding usually isn't the keyboard, since you're usually pausing to think. There are some speed demon keyboard coders who could probably go even faster with voice though. I brought up using voice recognition as a general computer interface but, of course, everybody here only focused on the niche case of coding. :) I was talking about using it for everything: manipulating the GUI, entering text, etc. The hand gestures are there as a fallback for when you can't use voice or because sometimes they are more expressive, say for manipulating spatial objects or drawing.
 Windows Start menu to launch applications and get into the 
 right system settings, ie by using the keyboard.
A friend asked me over the weekend how to get to the calculator on Windows 8. One person was giving the old Win 95 answer "click start, go to programs, accessories, then click calculator". That doesn't work on Win8... and I think the new way is so much better: I said "hit that windows button on the keyboard then type "calculator" and hit enter". She did that and agreed it is super easy.
Over the years, I've increasingly come to the conclusion that search is a universal interface that is still underused. Of course, part of that is because of indexing issues, but search is just much more natural and can easily be updated to take voice input.
 I think the biggest benefit of a GUI isn't so much ease of use 
 as the ability to browse the options. If she didn't know there 
 was a calculator, she would never have thought to just type the 
 word, but might have noticed the icon while looking at the 
 start menu. But if you already know what you want, it is hard 
 to beat just asking for it directly.
Yeah, that has long been a benefit of GUIs, though as the number of options get very large, it doesn't scale. I cannot remember where anything is in the Windows Control Panel these days, since it's so overstuffed with settings that the initial panel leaves out many categories, so I invariably use search to find the settings panel I want. You can also use search to browse by using different keywords, but if the keywords aren't done well, you might miss it that way too. On Thursday, 27 November 2014 at 21:05:14 UTC, ketmar via Digitalmars-d wrote:
 You'll simply hand the recognizer software a bunch of old code 
 that exemplifies your programming style and it'll figure out 
 that you prefer spaces there and automatically add them for 
 you, without having to say it or configure it. :) That's 
 actually fairly easy, if your style is at all consistent.
that recognizer still must be able do do semantic analysis on each language i want to use, or it will fail on almost any compilcated sentense.
You wouldn't need semantic analysis for formatting style, which is what we were talking about.
 ah, and occasional "ah, hello, honey, how do... DAMN IT! 
 FSCK! GET
 LOST! oh, no, honey, i'm not talking with you... what do you 
 mean by
 'you never talking with me'? ehm... shit."
"break<pause>ah, hello, honey, how do..."
so i can't code and talk simultaneously anymore? ah, that's what i call "new technologies"! ;-)
Well, just as vi introduced modal editing and had you switch back and forth decades ago, speech recognition will have to do the same initially. Eventually it'll be smart enough to tell the difference between speech directed at it and elsewhere. We're still in the vi phase of speech recognition interfaces. ;) On Friday, 28 November 2014 at 09:25:53 UTC, Jérôme M. Berger wrote:
 Joakim wrote:
 "break<pause>ah, hello, honey, how do..."
As everybody knows, this works just fine: https://www.youtube.com/watch?v=mWZLa4AnN5k ;)
Seems like it's working great to me, the problem is MS allowing that keyphrase in the game's content. :) On Friday, 28 November 2014 at 14:08:02 UTC, CraigDillabaugh wrote:
 Just wanted to make a couple of comments on 'voice activated 
 coding'.

 My typing speed is not the bottleneck in my coding, it is the 
 speed at which I reason about the problem at hand.  So voice 
 activated/typing isn't likely going to make a huge difference 
 in my coding speed.

 However, what does influence my coding speed significantly is 
 how well I am able to concentrate.  Voice activated coding 
 might work well in your home office, but how would it play out 
 at an office, or a school lab.  Will we all get our own, 
 sound-proof offices ... or headsets that filter out everything 
 but our own voices?
Yeah, headsets, which programmers often already use to listen to music while coding, or those little jaw mics if you just want the microphone. If the mic is close enough, you can talk in a low voice and still be recognized. Call centers use headsets and pack them in, I doubt it can't be done for other fields too.
 Also, I bet that on heavily used systems the bottleneck for a 
 voice activated system is not going to be the speed at which 
 the user speaks, but the speed at which the voice processor 
 interprets what they are saying (like when the GC kicks in :o)  
 Sure, there is no reason that this should be the case, but 
 modern software seems to stall often enough just handling basic 
 text.
Google made their speech recognition available offline on Android a couple years back, ie it's not tied to servers with massive resources anymore. With specialized hardware, I don't think it'll be a problem, but I don't know the details of the latest advances. I know the just-released Android 5.0 added support for specialized low-power, always-on voice recognition chips, so you can talk to your phone when the screen is off and instantly turn it on, which the Moto X and Nexus 6 and 9 have.
Nov 28 2014
parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Fri, 28 Nov 2014 15:52:01 +0000
Joakim via Digitalmars-d <digitalmars-d puremagic.com> wrote:

 I brought up using voice recognition as a general computer=20
 interface but, of course, everybody here only focused on the=20
 niche case of coding. :) I was talking about using it for=20
 everything: manipulating the GUI, entering text, etc.  The hand=20
 gestures are there as a fallback for when you can't use voice or=20
 because sometimes they are more expressive, say for manipulating=20
 spatial objects or drawing.
"move window there" ah, stupid computer! "move window THERE!" damn it! "T.H.E.R.E." idiot. can't understand so simple word!
Nov 28 2014
prev sibling parent reply "CraigDillabaugh" <craig.dillabaugh gmail.com> writes:
clip
 There are heuristics that can get such homonyms right based on 
 the context.  As voice recognition advances, they are being 
 applied and increasing accuracy by leaps and bounds.  One nice 
 consequence of the current mobile boom is that a ton of work is 
 getting put into improving the speech recognition engines of 
 Google Now, Siri, and Cortana.

 Please, give me a keyboard anytime.
Only if you want to go really slow, like people who still write stuff out longhand or use mechanical typewriters these days. :) Take a look at the wpm numbers I linked above, voice is much faster than typing and recognition is becoming much more accurate.
Just wanted to make a couple of comments on 'voice activated coding'. My typing speed is not the bottleneck in my coding, it is the speed at which I reason about the problem at hand. So voice activated/typing isn't likely going to make a huge difference in my coding speed. However, what does influence my coding speed significantly is how well I am able to concentrate. Voice activated coding might work well in your home office, but how would it play out at an office, or a school lab. Will we all get our own, sound-proof offices ... or headsets that filter out everything but our own voices? I think this issue is going to be more of a hinderance to voice activated coding than the technical issues. Also, I bet that on heavily used systems the bottleneck for a voice activated system is not going to be the speed at which the user speaks, but the speed at which the voice processor interprets what they are saying (like when the GC kicks in :o) Sure, there is no reason that this should be the case, but modern software seems to stall often enough just handling basic text.
Nov 28 2014
next sibling parent "CraigDillabaugh" <craig.dillabaugh gmail.com> writes:
On Friday, 28 November 2014 at 14:08:02 UTC, CraigDillabaugh 
wrote:
 clip
clip
 My typing speed is not the bottleneck in my coding, it is the 
 speed at which I reason about the problem at hand.  So voice 
 activated/typing isn't likely going to make a huge difference 
 in my coding speed.

 However, what does influence my coding speed significantly is 
 how well I am able to concentrate.  Voice activated coding 
 might work well in your home office, but how would it play out 
 at an office, or a school lab.  Will we all get our own, 
 sound-proof offices ... or headsets that filter out everything 
 but our own voices?

 I think this issue is going to be more of a hinderance to voice 
 activated coding than the technical issues.
Pardon the noise on my part. Of course this won't be an issue, I completely forgot about the 'Cone of Silence' https://www.youtube.com/watch?v=g1eUIK9CihA
Nov 28 2014
prev sibling next sibling parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Fri, 28 Nov 2014 14:08:01 +0000
CraigDillabaugh via Digitalmars-d <digitalmars-d puremagic.com> wrote:

 Just wanted to make a couple of comments on 'voice activated=20
 coding'.
=20
 My typing speed is not the bottleneck in my coding, it is the=20
 speed at which I reason about the problem at hand.  So voice=20
 activated/typing isn't likely going to make a huge difference in=20
 my coding speed.
that depends of style. i, for example, love to think alot typing nothing, and then have hour-long typing sessions when i already know and see what i want and just have to type it. any shortcut is invaluable here and voice input is way too slow.
Nov 28 2014
prev sibling next sibling parent "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Fri, Nov 28, 2014 at 07:06:01PM +0200, ketmar via Digitalmars-d wrote:
 On Fri, 28 Nov 2014 14:08:01 +0000
 CraigDillabaugh via Digitalmars-d <digitalmars-d puremagic.com> wrote:
 
 Just wanted to make a couple of comments on 'voice activated 
 coding'.
 
 My typing speed is not the bottleneck in my coding, it is the 
 speed at which I reason about the problem at hand.  So voice 
 activated/typing isn't likely going to make a huge difference in 
 my coding speed.
that depends of style. i, for example, love to think alot typing nothing, and then have hour-long typing sessions when i already know and see what i want and just have to type it. any shortcut is invaluable here and voice input is way too slow.
Not to mention tiring... I can type for hours on end, no problem, but after speaking for half an hour I'm exhausted and my throat is sore. T -- Too many people have open minds but closed eyes.
Nov 28 2014
prev sibling parent reply ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Fri, 28 Nov 2014 09:23:12 -0800
"H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> wrote:

 On Fri, Nov 28, 2014 at 07:06:01PM +0200, ketmar via Digitalmars-d wrote:
 On Fri, 28 Nov 2014 14:08:01 +0000
 CraigDillabaugh via Digitalmars-d <digitalmars-d puremagic.com> wrote:
=20
 Just wanted to make a couple of comments on 'voice activated=20
 coding'.
=20
 My typing speed is not the bottleneck in my coding, it is the=20
 speed at which I reason about the problem at hand.  So voice=20
 activated/typing isn't likely going to make a huge difference in=20
 my coding speed.
that depends of style. i, for example, love to think alot typing nothing, and then have hour-long typing sessions when i already know and see what i want and just have to type it. any shortcut is invaluable here and voice input is way too slow.
=20 Not to mention tiring... I can type for hours on end, no problem, but after speaking for half an hour I'm exhausted and my throat is sore.
ah, yes. i don't think about that, but you are right: typing for two hours is ok, and talking for two hours is really painfull.
Nov 28 2014
parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Friday, 28 November 2014 at 19:16:28 UTC, ketmar via 
Digitalmars-d wrote:
 ah, yes. i don't think about that, but you are right: typing 
 for two hours is ok
I don't really agree, if I were to type for nonstop for two hours, I'd be in a world of pain. Talking for two hours hurts too, but typing can bring all kinds of RSI to the wrist and such. I rarely go for that long if I can avoid it just as a preventative measure.
Nov 28 2014
next sibling parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Fri, 28 Nov 2014 19:34:20 +0000
"Adam D. Ruppe via Digitalmars-d" <digitalmars-d puremagic.com> wrote:

 On Friday, 28 November 2014 at 19:16:28 UTC, ketmar via=20
 Digitalmars-d wrote:
 ah, yes. i don't think about that, but you are right: typing=20
 for two hours is ok
=20 I don't really agree, if I were to type for nonstop for two=20 hours, I'd be in a world of pain. =20 Talking for two hours hurts too, but typing can bring all kinds=20 of RSI to the wrist and such. I rarely go for that long if I can=20 avoid it just as a preventative measure.
just don't let your hands hang off the table. at least this was what works for me and now i can type all day long (with occasional "drop the water out of fingers" gesture once in a several hours). ah, and kill "notebook keyboards", they sux. the best keyboard is mechanical one (biased opinion!), but keyboard with distinct keys and good feedback is fine too. at least this is what solves all my problems with continuous typing. ah, and most important thing: throw your mouse out of the window and made keypad and arrow keys non-functional, so your hands will never move out of the main part of the keyboard. sure, we have similar technics for speaking, but even using that i found that long speeches are painfull. taking into account that i'm speaking almost from my birth and start typing much-much later... no, i still prefer typing. ;-)
Nov 28 2014
prev sibling next sibling parent ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Fri, 28 Nov 2014 19:34:20 +0000
"Adam D. Ruppe via Digitalmars-d" <digitalmars-d puremagic.com> wrote:

 On Friday, 28 November 2014 at 19:16:28 UTC, ketmar via=20
 Digitalmars-d wrote:
 ah, yes. i don't think about that, but you are right: typing=20
 for two hours is ok
=20 I don't really agree, if I were to type for nonstop for two=20 hours, I'd be in a world of pain. =20 Talking for two hours hurts too, but typing can bring all kinds=20 of RSI to the wrist and such. I rarely go for that long if I can=20 avoid it just as a preventative measure.
p.s. but i feel noticable pain if i'm playing some shooters or other games where i have to use the mouse. yet this is good too, 'cause it forces my playing sessions to not last more than half of an hour. ;-)
Nov 28 2014
prev sibling parent "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Fri, Nov 28, 2014 at 09:47:24PM +0200, ketmar via Digitalmars-d wrote:
 On Fri, 28 Nov 2014 19:34:20 +0000
 "Adam D. Ruppe via Digitalmars-d" <digitalmars-d puremagic.com> wrote:
 
 On Friday, 28 November 2014 at 19:16:28 UTC, ketmar via 
 Digitalmars-d wrote:
 ah, yes. i don't think about that, but you are right: typing for
 two hours is ok
I don't really agree, if I were to type for nonstop for two hours, I'd be in a world of pain. Talking for two hours hurts too, but typing can bring all kinds of RSI to the wrist and such. I rarely go for that long if I can avoid it just as a preventative measure.
just don't let your hands hang off the table. at least this was what works for me and now i can type all day long (with occasional "drop the water out of fingers" gesture once in a several hours).
I always push the keyboard far back on the desk so that I can rest my entire forearm on the desk as I type. The common keyboard-drawer setup that most office desks come with is actually extremely evil, because it forces you to sit for long hours with your arms curled up in an unnaturally tight position against your body. It gives me wrist and shoulder/neck pain after just 1/2 hour.
 ah, and kill "notebook keyboards", they sux. the best keyboard is
 mechanical one (biased opinion!), but keyboard with distinct keys and
 good feedback is fine too.
Yeah, notebook keyboards force your hands too close together for comfort, and your wrists will not survive the ordeal for long. Besides, notebook screens are generally too small to place too far away, so that also constrains how far away you can put the keyboard, which in turn constraints how relaxed your forearms can be while you type. IOW, it's convenient for travelling, but bad for long-term use. [...]
 ah, and most important thing: throw your mouse out of the window and
 made keypad and arrow keys non-functional, so your hands will never
 move out of the main part of the keyboard.
Ratpoison ftw!!! :-P
 sure, we have similar technics for speaking, but even using that i
 found that long speeches are painfull. taking into account that i'm
 speaking almost from my birth and start typing much-much later... no,
 i still prefer typing. ;-)
Speaking is far more tiring than typing IME. I can answer emails all day but I'd have a sore throat and a headache if I were to talk the same amount. Of course, if I were to use webmail, then the headache would set in much earlier than when speaking... but with ratpoison + mutt, and a keyboard that's placed an appropriate distance *far back* on the desk, I can easily type all day without fatigue. T -- Many open minds should be closed for repairs. -- K5 user
Nov 28 2014
prev sibling next sibling parent reply "deadalnix" <deadalnix gmail.com> writes:
On Thursday, 27 November 2014 at 06:51:00 UTC, Joakim wrote:
 That's because GUIs are not aimed at highly technical power 
 users
 like you, but for most people, who don't want to memorize a 
 bunch
 of technical commands and barely know how to type.  They would 
 be
 much slower with ratpoison and a terminal than you are with a
 GUI. ;)
I hear that false dichotomy so many time that I lost count. That's is an idiotic mindset. You can have a gui that is also manipulable all via keyboard in an efficient manner. gnome-do is a good example of this: https://www.youtube.com/watch?v=oTxqE3M1k0U Because of that mindset, we are in 2014 and all terminal emulator are complete garbage to the point I ended up coding my own (which is garbage as well but at least does what I do and I can fix it when it doesn't, and it is in D :) ).
Nov 27 2014
parent reply Jacob Carlborg <doob me.com> writes:
On 2014-11-27 09:17, deadalnix wrote:

 I hear that false dichotomy so many time that I lost count. That's is an
 idiotic mindset. You can have a gui that is also manipulable all via
 keyboard in an efficient manner.

 gnome-do is a good example of this:
 https://www.youtube.com/watch?v=oTxqE3M1k0U
I'm using Quicksilver [1] on OS X, which seems to be the same thing as gnome-do.
 Because of that mindset, we are in 2014 and all terminal emulator are
 complete garbage to the point I ended up coding my own (which is garbage
 as well but at least does what I do and I can fix it when it doesn't,
 and it is in D :) ).
I'm using iTerm2 [2] on OS X. I think it's pretty good. Some of the cool features it supports: * Drag and drop to download/upload files to/from server via SCP/SSH * Bookmarks. It can also automatically set special bookmarks for each prompt, I found this very useful * Silent and visual bell * Notifications * Cmd+click on files/folders/links will open the item in the default application * Render inline images * Toolbelt, basically a side bar that can show different panes like command history, captured output, jobs, recent directories and so on * tmux integration, this basically means tmux tabs and split panes can be mapped to native tabs and split panes Then some of more standard boring features: themes, profiles, tabs and split panes. [1] http://qsapp.com/ [2] http://iterm2.com/ -- /Jacob Carlborg
Nov 27 2014
next sibling parent Jacob Carlborg <doob me.com> writes:
On 2014-11-27 18:55, Jacob Carlborg wrote:

 I'm using iTerm2 [2] on OS X.
One thing I really miss that the standard terminal has in OS X is automatic restoring of sessions. This includes command history, output and window layout. -- /Jacob Carlborg
Nov 27 2014
prev sibling parent reply "deadalnix" <deadalnix gmail.com> writes:
On Thursday, 27 November 2014 at 17:55:47 UTC, Jacob Carlborg 
wrote:
 I'm using iTerm2 [2] on OS X. I think it's pretty good. Some of 
 the cool features it supports:
I'm using it on my mac, but it is messing up with specials keys like command, control and friends. Both the control key and the terminal are bleeding edge technology, so it is expected that they are not handled properly...
Nov 27 2014
parent reply Jacob Carlborg <doob me.com> writes:
On 2014-11-28 02:05, deadalnix wrote:

 I'm using it on my mac, but it is messing up with specials keys like
 command, control and friends.
It does? You do know that iTerm2 is highly configurable? You can change the hotkeys and also the exact escape sequence a given key should send.
 Both the control key and the terminal are bleeding edge technology, so
 it is expected that they are not handled properly...
I don't know if I'm misunderstand but..., or was this a joke? -- /Jacob Carlborg
Nov 28 2014
parent "deadalnix" <deadalnix gmail.com> writes:
On Friday, 28 November 2014 at 08:39:17 UTC, Jacob Carlborg wrote:
 On 2014-11-28 02:05, deadalnix wrote:

 I'm using it on my mac, but it is messing up with specials 
 keys like
 command, control and friends.
It does? You do know that iTerm2 is highly configurable? You can change the hotkeys and also the exact escape sequence a given key should send.
I know, I spent a vast amount of time playing with that. Got it to behave properly most of the time, but it still start doing shit in some unidentified scenarios.
 Both the control key and the terminal are bleeding edge 
 technology, so
 it is expected that they are not handled properly...
I don't know if I'm misunderstand but..., or was this a joke?
It is partially a joke, partially the truth. Mixing them together is a way to highlight how ridiculous the current situation is.
Nov 28 2014
prev sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Thursday, 27 November 2014 at 06:51:00 UTC, Joakim wrote:
 However, I'm looking forward to voice recognition
I hate voice recognition because it doesn't actually think about what you're saying... it is just another way to input crude information into the same idiotic core, and keyboard symbols are better. What would be interesting - though not something I want in the real world, I kinda enjoy getting my paycheck - is a voice AI like they have in Star Trek. "Computer, I need a terminal emulator." a few beeps, then it pops one up "No, that sucks, make the mouse wheel work." the computer beeps as it looks at existing things to figure out what you meant by "work" then adjusts the program Self-programming computers, now *that's* a voice interface.
Nov 27 2014
parent "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Thu, Nov 27, 2014 at 02:56:48PM +0000, Adam D. Ruppe via Digitalmars-d wrote:
 On Thursday, 27 November 2014 at 06:51:00 UTC, Joakim wrote:
However, I'm looking forward to voice recognition
I hate voice recognition because it doesn't actually think about what you're saying... it is just another way to input crude information into the same idiotic core, and keyboard symbols are better.
+1000!! I can communicate with my computer in far more efficiently and in a far more precise way than I can speak within the same time. I mean, if I wanted to say: const(int[]) myFunc(T)(const(T)[] input) { ... } what would I have to pronounce? "const open parenthesis int open square bracket close square bracket close parenthesis space em why capital eff you en see open parenthesis capital tee close parenthesis open parenthesis const open parenthesis tee close parenthesis open square bracket close square bracket space input close parenthesis space open brace ..." ?? And what of Vim editing commands? "Move 5 lines down, 6 words to the right, 2 characters to the right, substitute next 5 characters, aye bee see dee ee, end, save file"? I could type "5j6w2l5sabcde<ESC>:wq<enter>" in a fraction of the time. Not to mention how many times I'd have to correct the speech recognizer software which will inevitably get half the characters wrong because of ambiguous pronunciation (by "queue" do you mean Q-U-E-U-E or the letter Q?). Please, give me a keyboard anytime.
 What would be interesting - though not something I want in the real
 world, I kinda enjoy getting my paycheck - is a voice AI like they
 have in Star Trek.
 
 "Computer, I need a terminal emulator."
 
 a few beeps, then it pops one up
 
 "No, that sucks, make the mouse wheel work."
 
 the computer beeps as it looks at existing things to figure out what
 you meant by "work" then adjusts the program
 
 Self-programming computers, now *that's* a voice interface.
Let's make one in D! ;-) *That* will be one killer app for sure! T -- People demand freedom of speech to make up for the freedom of thought which they avoid. -- Soren Aabye Kierkegaard (1813-1855)
Nov 27 2014
prev sibling parent "Chris" <wendlec tcd.ie> writes:
On Wednesday, 26 November 2014 at 21:02:20 UTC, H. S. Teoh via 
Digitalmars-d wrote:
 On Wed, Nov 26, 2014 at 08:06:01PM +0000, Adam D. Ruppe via 
 Digitalmars-d wrote:
 So my computer died on me again last week and I had to buy new
 hardware. I was forced to update the software to run the new
 hardware... and it is painful.
I have a high distrust of brand new *hardware*, because they inevitably are gratuitously incompatible with my current software and require new-fangled OSes bloated with features I never use. Because of this, I only ever upgrade once every 5 years (if not longer). And when I do, I'll be sure to spend plenty of time researching what hardware isn't horribly broken or requires a specific version of a specific OS and doesn't work with anything else. Vendor lock-in is evil.
 I hate all software and have learned that if I want a job done 
 right,
 I have to do it myself. Rarely, I find other people's software 
 is OK
 with some slight modifications, so I try to do that.
I don't trust computers, I've spent too long programming to think that they can get anything right. -- James Miller :-)
I always find it amusing when people say "It was done with a computer, it must be correct!" Yeah, sure.
Nov 27 2014
prev sibling next sibling parent reply ketmar via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Wed, 26 Nov 2014 20:06:01 +0000
"Adam D. Ruppe via Digitalmars-d" <digitalmars-d puremagic.com> wrote:

 xterm is one example. I basically like it but it is ugly and=20
 stupid so needs a few fixes. As such, I maintain my own private=20
 fork of it.
ah, terminal emulators... i ended writing my own after i found that rxvt is effectively dead, mrxvt too, and rxvt-unicode is just a mess. looking back i must say that i'd better adopt rxvt-unicode instead of writing my own emulator, 'cause writing terminal emulator that works with all console software is a PITA.
Nov 26 2014
parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Wednesday, 26 November 2014 at 21:34:43 UTC, ketmar via 
Digitalmars-d wrote:
 looking back i must say that i'd better adopt rxvt-unicode 
 instead of writing my own emulator, 'cause writing terminal
 emulator that works with all console software is a PITA.
true.... but I set my sights lower: I just want "works for me". After a bunch of guess and checking, I got the two most complex programs I use - mutt and vim - including with or without gnuscreen to work, and that's good enough. If I have to use a complex program that doesn't work right in it, I figure I can always fall back on xterm, rxvt, or the Linux console.
Nov 26 2014
prev sibling next sibling parent Andrej Mitrovic via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 11/26/14, Adam D. Ruppe via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 That's in the xterm source code. Yes, it depends on the presence
 of a particular include guard.
Oh you should know how much trouble I went through when I was building my C++ wrapping tool (initially just a wxWidgets wrapping tool). The include stuff was 90% of the mess. So much frustration with *order of inclusions*. It's probably *the* reason why I completely burnt-out on continuing working on tool after several months. I can't believe there are brand-new programming languages being developed where the author(s) still insist(s) on textual inclusion. I'm sorry, but the detour you took with that simple decision causes an insane mess for both the tools and the end-user, don't repeat the mistake of C and C++ anymore, please! D's modules are a **massive blessing**.
Nov 26 2014
prev sibling next sibling parent "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Wed, Nov 26, 2014 at 10:46:08PM +0100, Andrej Mitrovic via Digitalmars-d
wrote:
 On 11/26/14, Adam D. Ruppe via Digitalmars-d
 <digitalmars-d puremagic.com> wrote:
 That's in the xterm source code. Yes, it depends on the presence
 of a particular include guard.
Oh you should know how much trouble I went through when I was building my C++ wrapping tool (initially just a wxWidgets wrapping tool). The include stuff was 90% of the mess. So much frustration with *order of inclusions*. It's probably *the* reason why I completely burnt-out on continuing working on tool after several months.
Wow. I've only had the misfortune of having to deal with order-dependent #include's a few times in my life. I must live a sheltered life indeed! :-P I do agree that they are utterly evil, though. Even more evil is header files that compile successfully even if the #include's are wrongly ordered, but behaves differently (yes, I have actually seen this before): // some evil .h file: ... #ifndef someSillyStdLibMacro #define someSillyStdLibMacro myOwnBrokenImpl #endif So if you #include the system header that defines someSillyStdLibMacro, then you get the right behaviour, otherwise, the code still compiles but you end up using myOwnBrokenImpl instead, which inevitably does NOT work properly on your system 'cos, unsurprisingly, it was written for the author's own peculiar environment. Worse yet, the broken implementation only gets used in .c files that have the wrong ordering of #include's. Good luck debugging this nightmare!
 I can't believe there are brand-new programming languages being
 developed where the author(s) still insist(s) on textual inclusion.
Wow. Textual inclusion is so 80's! Where've they *been* all this time?!
 I'm sorry, but the detour you took with that simple decision causes an
 insane mess for both the tools and the end-user, don't repeat the
 mistake of C and C++ anymore, please! D's modules are a **massive
 blessing**.
Yeah, D's module system saves a LOT of headache, even in spite of its flaws. (Private imported module symbols conflicting with public symbols, anyone? Global scoped imports always being public? Local unscoped imports shadowing local variables (aka local variable hijacking)? Yeah, D modules could be better... but compared with #ifdef hell in C/C++, it's still orders of magnitude better.) T -- Turning your clock 15 minutes ahead won't cure lateness---you're just making time go faster!
Nov 26 2014
prev sibling parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 26 November 2014 at 21:00, H. S. Teoh via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Wed, Nov 26, 2014 at 08:06:01PM +0000, Adam D. Ruppe via Digitalmars-d
wrote:
 So my computer died on me again last week and I had to buy new
 hardware. I was forced to update the software to run the new
 hardware... and it is painful.
I have a high distrust of brand new *hardware*, because they inevitably are gratuitously incompatible with my current software and require new-fangled OSes bloated with features I never use. Because of this, I only ever upgrade once every 5 years (if not longer). And when I do, I'll be sure to spend plenty of time researching what hardware isn't horribly broken or requires a specific version of a specific OS and doesn't work with anything else. Vendor lock-in is evil.
If you look around, it isn't hard to find vendors who build laptops, desktops, servers, that either come shipped with a popular Linux distribution pre-installed, or are happy to test the configuration with Linux before shipping. Iain.
Nov 29 2014