--- Log opened Fri Sep 27 00:00:54 2013 |
00:29 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
00:55 | | Turaiel[Offline] is now known as Turaiel |
01:08 | | Derakon[AFK] is now known as Derakon |
02:06 | <&ToxicFrog> | McMartin: it looks like he's apologizing not for CAD as such, but for the fact that it's a three key chord rather than a dedicated key on the keyboard. |
02:09 | <@Azash> | I think anyone who has had a sleep key on their keyboard agrees that is a terrible idea |
02:13 | <@Alek> | amen |
02:51 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
02:51 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
02:54 | <&McMartin> | Was https://www.usenix.org/system/files/1309_14-17_mickens.pdf linked in here? |
02:54 | <&McMartin> | Because it is fantastic |
02:57 | <&ToxicFrog> | It was. |
02:58 | | Kindamoody[zZz] is now known as Kindamoody |
02:58 | <&ToxicFrog> | Indeed, I linked it after being linked it at work |
02:58 | <~Vornicus> | McM: that is fantastic |
02:59 | <&ToxicFrog> | "You go to work hung-over, and you realize that, during a drunken conference call, you told your boss that your processor has 32 registers when it only has 8, but then you realize THAT YOU CAN TOTALLY LIE ABOUT THE NUMBER OF PHYSICAL REGISTERS, and you invent a crazy hardware mapping scheme from virtual registers to physical ones, and at this point, you start seducing the spouses of the compiler team, because itās pretty clear that |
02:59 | <&ToxicFrog> | compilers are a thing of the past, and the next generation of processors will run English-level pseudocode directly." |
02:59 | <&McMartin> | "at a certain point, the transistors became so small that they started to misbehave. They randomly switched states; they leaked voltage; they fell prey to the seductive whims of cosmic rays that, unlike the cosmic rays in comic books, did not turn you into a superhero" |
03:04 | <~Vornicus> | "As a child in 1977, John had met Gordon Moore; Gordon had pulled a quarter from behind Johnās ear and then proclaimed that he would pull twice as many quarters from Johnās ear every 18 months." |
04:20 | <@Alek> | oh God no |
04:40 | | iospace is now known as iospace|AWA |
04:48 | | himi [fow035@Nightstar-36db723c.ffp.csiro.au] has joined #code |
04:48 | | mode/#code [+o himi] by ChanServ |
05:05 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
05:12 | | Derakon is now known as Derakon[AFK] |
05:12 | | RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [[NS] Quit: Gone.] |
05:15 | | RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code |
05:24 | | gnolam [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has quit [Client closed the connection] |
05:24 | | gnolam [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has joined #code |
05:24 | | mode/#code [+o gnolam] by ChanServ |
05:28 | < Syka_> | oh my god why |
05:29 | < Syka_> | people :( |
05:29 | < Syka_> | people misunderstanding science :( |
05:29 | | Alek [omegaboot@Nightstar-4093ec22.il.comcast.net] has quit [Client closed the connection] |
05:30 | | Alek [omegaboot@Nightstar-4093ec22.il.comcast.net] has joined #code |
05:30 | | mode/#code [+o Alek] by ChanServ |
05:33 | <@Alek> | @Vorn |
05:33 | <~Vornicus> | what |
05:33 | <@Alek> | The topologist thinks that the glass is full of glass, and all else is outside it. |
05:34 | <~Vornicus> | well duh |
05:35 | <@Alek> | :D |
05:53 | | Turaiel is now known as Turaiel[Offline] |
05:57 | | Kindamoody is now known as Kindamoody|afk |
05:59 | | celticminstrel [celticminst@Nightstar-5d0169f9.dsl.bell.ca] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
06:21 | | ErikMesoy|sleep is now known as ErikMesoy |
06:58 | | thalass [thalass@Nightstar-4ab061cc.bigpond.net.au] has joined #code |
07:18 | | Alek [omegaboot@Nightstar-4093ec22.il.comcast.net] has quit [Ping timeout: 121 seconds] |
07:23 | <~Vornicus> | battleship solver first run: pretty successful, though not being able to bring it to the living room does kind of cramp my style. |
07:24 | <~Vornicus> | also, being able to mark kills would probably reduce the number of states to test in the later stages. |
07:39 | | himi [fow035@Nightstar-36db723c.ffp.csiro.au] has quit [Ping timeout: 121 seconds] |
08:14 | < AnnoDomini> | Raspi. I want to run a certain command upon reboot. How do I do that? Is there some autoexec.bat here? |
08:19 | <~Vornicus> | it runs a *nix, right? |
08:20 | < AnnoDomini> | Debian. |
08:22 | <~Vornicus> | uh. There's a variety of places you might want to put it, depending on when you want it to run and who you want it to run as. |
08:23 | < AnnoDomini> | It's the noip2 thing that updates the DNS. I think it needs to run as root. |
08:23 | <~Vornicus> | noip doesn't need to run as root. |
08:24 | <~Vornicus> | Or shouldn't. |
08:25 | <~Vornicus> | You should be able to run it with basically no privileges: the ability to open an outgoing socket and read ifconfig (ipconfig?) are both available to everybody, I think. |
08:25 | < AnnoDomini> | Then I think I need to chmod it and its config file too. |
08:26 | < AnnoDomini> | *chown |
08:28 | < AnnoDomini> | OK. |
08:28 | < AnnoDomini> | Now then, how do I make it start being automatic? |
08:30 | <~Vornicus> | Oh, you don't need to chown a file to make it run as a different user. |
08:30 | <~Vornicus> | Uh... |
08:32 | < AnnoDomini> | Well, I could have given it different permissions, I guess. |
08:32 | <~Vornicus> | blast. I can't remember how to do this. There's a file you put a call to the script into; I believe it's got .rc as the extension, but I'm not sure where it is or even which one you'd want because there's quite a few. |
08:32 | < AnnoDomini> | I've found this: "update-rc.d servicename defaults" |
08:32 | < AnnoDomini> | Does this look like it? |
08:35 | < [R]> | If you have a one-line thing (IE: not a service) /etc/rc.local (this is a shell script) is your friend, alternatively /etc/inittab (this is /not/ a shell script). If it's a service (IE: it had an /etc/init.d/ program) then there are distribution specific ways to activate it. |
08:35 | < [R]> | But for something like a dyndns update push? It'd actuall crontab that. |
08:36 | < [R]> | Better, if your dhcp client daemon has an event system, hook it into that (this also saves you from having to scrape out the IP from `ip` or `ifconfig`) |
08:38 | < AnnoDomini> | Does ifconfig even give you the router's IP? |
08:38 | < AnnoDomini> | I mean, the IP the router is dynamically assigned by the ISP. |
08:39 | < [R]> | I was assuming that this device was getting the IP that you needed to push to your DNS provider. |
08:39 | <~Vornicus> | As was I. As it is, the router should have DDNS service available to itself, the raspi shouldn't need to handle it. |
08:39 | < [R]> | If that is not the case (IE: it's behind NAT) then you are correct. `ifconfig` would not provide the IP. |
08:39 | < AnnoDomini> | It is behind NAT. |
08:40 | < AnnoDomini> | noip2 still works to make the whole setup work. |
08:40 | < [R]> | Thus my DHCP suggestion isn't applicable (unless your NAT device allows you to hook into it) |
08:40 | < [R]> | However, I believe crontab is your best option at this point thne. |
08:41 | <~Vornicus> | Unless your router has noip available as a known ddns service; it should, it's a popular one. |
08:41 | < [R]> | `crontab -e` or `crontab -u USER -e` |
08:42 | < [R]> | Ah right, yeah. |
08:42 | <~Vornicus> | nearly all consumer routers have this ability already built in. |
08:43 | < AnnoDomini> | OK, so you're saying that I should be configuring the router to talk with no-ip, rather than try to set this up on the raspi. |
08:44 | < [R]> | That's ideal, yes. |
08:44 | <~Vornicus> | That's the gist of it. The router knows when its IP changes, and probably knows to update itself once in a while when it doesn't hcange. |
08:44 | < [R]> | Since the router is likely using a DHCP hook, or a decent cronjob. |
08:46 | < AnnoDomini> | OK. |
08:46 | < AnnoDomini> | Now, moving backwards to the issue of configuring that damn webserver... [R], you said you know nginx. How do I change the directory it shows to the world? |
08:47 | < [R]> | Is google not helping you on that? |
08:48 | < [R]> | You basically want to look for the `root` line. |
08:48 | < [R]> | (I have no idea what your current config looks like, so it's possible you have multiple location blocks. |
08:49 | < [R]> | http://blog.martinfjordvald.com/2010/07/nginx-primer/ |
08:58 | < AnnoDomini> | It's the default config. I have no 'root' line. I have no 'location' blocks either. |
08:58 | < AnnoDomini> | I have only one block, and it's called 'http'. |
08:58 | < [R]> | Paste it? |
08:58 | < [R]> | (You might also have include lines?) |
09:00 | < AnnoDomini> | http://pastie.org/8359408 |
09:04 | | You're now known as TheWatcher |
09:07 | < [R]> | Yeah, there's two include lines |
09:07 | < [R]> | Well twothat matter |
09:07 | < [R]> | include /etc/nginx/conf.d/*.conf; |
09:07 | < [R]> | include /etc/nginx/sites-enabled/*; |
09:10 | | Alek [omegaboot@Nightstar-4093ec22.il.comcast.net] has joined #code |
09:10 | | mode/#code [+o Alek] by ChanServ |
09:11 | < AnnoDomini> | OK. I've edited the sites enable default thing. What command was it to restart nginx? |
09:11 | < [R]> | /etc/init.d/nginx reload (try restart instead if that doesn't work) |
09:12 | <@froztbyte> | `service nginx reload` |
09:13 | < AnnoDomini> | Hmm. It's still 403 forbidden. |
09:13 | <@froztbyte> | 403 means "your request routing is right, but I'm not allowed to give you this content" |
09:14 | <@froztbyte> | usually the reason for the disallowance is file permissions |
09:14 | <@froztbyte> | anyway, lemme check your config quickly |
09:14 | < [R]> | su -c 'ls /path/to/file/really/' NGINX_USER |
09:15 | <@froztbyte> | wat |
09:15 | < [R]> | (Then keep going up the path until it works. |
09:15 | < AnnoDomini> | What does that do? |
09:16 | | * froztbyte prefers something like `find . -type d -exec ls -l {} \\; | grep -v $user`, less manual work |
09:16 | < [R]> | Runs `ls` as nginx's user. But yeah, there's a config issue possibly too (I'm kind of sleepy ATM) |
09:16 | <@froztbyte> | AnnoDomini: su is a command which means "switch user", -c says "I only want to run one command, it follows (usually in quotes)", and NGINX_USER would get substituted with 'www-data' or somesuch |
09:17 | <@froztbyte> | so it'll try to list things until it can't |
09:17 | < [R]> | froztbyte: that doesn't actually do the same thing. |
09:17 | <@froztbyte> | [R]: it doesn't, but it's a lot quicker for me to eyeball |
09:17 | < [R]> | Something like: su -c 'find /path/suspected/ 2>/log.txt' USER |
09:17 | < AnnoDomini> | "No passwd entry for user 'NGINX_USER'" |
09:18 | < [R]> | *headdesk* |
09:18 | <@froztbyte> | AnnoDomini: yes, it's 'www-data' in this case |
09:18 | <@froztbyte> | AnnoDomini: do this for me please: ls /etc/nginx/sites* |
09:19 | < AnnoDomini> | http://pastie.org/8359441 |
09:19 | < [R]> | (ALL-CAPS things in provided commands tend to be replaced by the actual thing, can't use [] or <> since those might actually be relevant to the command.) |
09:20 | <@froztbyte> | AnnoDomini: okay, so there's one file, and one symlink. the /etc/nginx/sites-available/default is the file, and ...-enabled/default is a symlink to the file |
09:20 | <@froztbyte> | AnnoDomini: `cat` that file to see what 'root' parameter it has in its config |
09:20 | | * TheWatcher eyes xkcd. snerks |
09:21 | < [R]> | I like the alt-text |
09:21 | <@TheWatcher> | Indeed |
09:22 | < AnnoDomini> | froztbyte: http://pastie.org/8359449 |
09:23 | <@froztbyte> | AnnoDomini: ah, I see; okay, so what you need to now do is run `su -c 'ls /mnt' www-data; su -c 'ls /mnt/hitachi' www-data;` |
09:23 | <@froztbyte> | see which one breaks |
09:24 | < AnnoDomini> | Problem: I don't know the root password. I've been using passwordless sudo. |
09:25 | < [R]> | sudo su -c 'ls /mnt' www-data; sudo su -c 'ls /mnt/hitachi' www-data |
09:25 | < AnnoDomini> | ls: cannot open directory /mnt/hitachi: Permission denied |
09:26 | <@froztbyte> | and there we go |
09:26 | <@froztbyte> | ls -l /mnt | grep hitachi |
09:26 | <@froztbyte> | (also maybe `mount | grep hitachi` because I have a hunch) |
09:26 | < AnnoDomini> | drwx------ 10 pi pi 4096 Sep 26 21:38 hitachi |
09:27 | < AnnoDomini> | /dev/sda1 on /mnt/hitachi type ext4 (rw,relatime,data=ordered) |
09:27 | <@froztbyte> | alrighty, there we go |
09:27 | < [R]> | Because it's a mount-point I would chmod a+rwx that. (Do NOT use -r) |
09:28 | < [R]> | (Also chown it back to root.root) |
09:28 | <@froztbyte> | so, the permissions for the path /mnt/hitachi are "owner is allowed to read, write, and execute; no-one else is allowed anything" |
09:28 | < [R]> | But you could also chown it to www-data if you wanted. |
09:28 | < Syka_> | once i chmod'd /* to 777 on a production webserver |
09:29 | < Syka_> | that was fun |
09:29 | < [R]> | Not recursive hopefully? |
09:29 | < Syka_> | yep |
09:29 | < [R]> | D: |
09:29 | < [R]> | Welp, AIDE's your friend there. |
09:29 | < [R]> | Sucks to be you if you weren't using it. |
09:29 | <@froztbyte> | so yeah, what [R] said about chmod, so the command looks like or so: `chmod g+rx,o+rx /mnt/hitachi` |
09:29 | < Syka_> | what is AIDE? |
09:29 | <@froztbyte> | (you don't need +w because your webserver won't be writing there) |
09:29 | < [R]> | cfengine/puppet/chef could also help. |
09:30 | < Syka_> | heh, well, that was at oldwork :D |
09:30 | < Syka_> | i don't care about them |
09:30 | < AnnoDomini> | froztbyte: OK. Will this survive a remounting? |
09:30 | <@froztbyte> | AnnoDomini: "probably" |
09:30 | < AnnoDomini> | OK. |
09:30 | < [R]> | Syka_: it's basically a really suped up *sum program, it's marketed as a host-based intrusion detection system. |
09:30 | <@froztbyte> | depends on what the reason for the permissions was |
09:30 | <@froztbyte> | AnnoDomini: you might need to pass in a mount-opt in /etc/fstab |
09:31 | <@froztbyte> | AnnoDomini: very quick to find out, though :) |
09:31 | < [R]> | But it can also check file permissions, file-node types (IE: character, buffer, fifo, socket, directory, real file) and more. |
09:31 | < [R]> | Err, yes, a+rx (not a+rwx) durr. |
09:32 | < AnnoDomini> | Thanks for the help. |
09:32 | < [R]> | Night all |
09:33 | < [R]> | AD: good luck with your thing. |
09:33 | | * AnnoDomini needs to go now, but will return with config questions about vsftpd. |
09:33 | <@froztbyte> | "run" |
09:34 | < AnnoDomini> | (I want it to live in /mnt/hitachi too!) |
09:34 | < [R]> | (If you can, scp/sftp are better options than ftp) |
09:36 | <@froztbyte> | AnnoDomini: you probably don't |
09:36 | <@froztbyte> | (unless you really have no other choice) |
09:36 | <@froztbyte> | (ftp is terrible) |
09:36 | <@froztbyte> | (but sure, I can help) |
10:02 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
10:02 | | mode/#code [+o himi] by ChanServ |
10:31 | | thalass is now known as thalaway |
10:44 | | thalaway is now known as Thalass |
10:58 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code |
11:22 | < Syka_> | Tamber: coughotherchancough |
11:26 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [[NS] Quit: Leaving] |
11:35 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
11:36 | | Orth is now known as reivles |
11:39 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
12:24 | | reivles [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
12:25 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
12:26 | | Orth is now known as reivle |
12:44 | | reivle [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
12:45 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
12:59 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
13:12 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
13:13 | | mode/#code [+o himi] by ChanServ |
13:13 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
13:16 | < AnnoDomini> | froztbyte: Why would FTP be terrible |
13:16 | < AnnoDomini> | ? |
13:23 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
13:24 | <@froztbyte> | not would be, it is |
13:25 | <@froztbyte> | http://mywiki.wooledge.org/FtpMustDie has a nice list of reasons |
13:28 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
13:31 | < AnnoDomini> | Okay. So what would I use instead? I want to make this server my go-to place for archiving my cat pictures and a website for my character sheets. I expressly do NOT want to write my web pages in the command line, and I do NOT also want to have to use scp from the command line to transfer files. |
13:32 | < AnnoDomini> | (That's what I'm currently doing, because the server I'm using has broken FTP.) |
13:33 | <@froztbyte> | you don't really need to be forced to use the command line |
13:33 | <@froztbyte> | filezilla supports sftp perfectly, for instance |
13:33 | <@froztbyte> | and sftp is just a sub thing on openssh |
13:33 | <@froztbyte> | so you basically get it for free |
13:34 | <@froztbyte> | (afaik finder also supports sftp, and gnome and kde's default file managers definitely do too) |
13:35 | < Syka_> | nautilus does, yes |
13:42 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
13:42 | | mode/#code [+o himi] by ChanServ |
13:47 | < AnnoDomini> | OK, so what you're telling me is I need to install some kind of sftp server or is that already included? |
13:47 | < Syka_> | sftp is done through ssh isn't it |
14:03 | <@TheWatcher> | Yep |
14:05 | <@TheWatcher> | AD: sftp and scp functionality are provided by the sshd service running on your pi. You should be able to connect to it using, say, Filezilla with host: sftp://yourpihere and your normal username and password |
14:06 | < AnnoDomini> | OK. |
14:08 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
14:15 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
14:30 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
14:39 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
14:46 | < AnnoDomini> | Neat! |
14:46 | < AnnoDomini> | Everything works now. |
14:47 | < AnnoDomini> | I must only get started on designing a new website. The old one is largely obsolete due to lifestyle changes. |
14:49 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
14:49 | | mode/#code [+o himi] by ChanServ |
14:58 | < AnnoDomini> | Silly aptitude. When installing znc, it turns out my Perl is too old. So the first solution it comes up with is to remove half of the critical packages installed. |
14:58 | < AnnoDomini> | Second solution is to upgrade Perl. |
14:59 | < Syka_> | debian unstable? |
15:00 | < AnnoDomini> | raspbian |
15:01 | < Syka_> | ...is that based on debian unstable? |
15:02 | < AnnoDomini> | I doubt it. |
15:02 | < Syka_> | heh |
15:03 | < Syka_> | i had that happen to me on my debian unstable |
15:03 | < Syka_> | perl broke my entire install :( |
15:32 | <@froztbyte> | you did by blindly pressing 'y' ;p |
15:36 | | Turaiel[Offline] is now known as Turaiel |
15:37 | <&ToxicFrog> | AnnoDomini: you can also just mount it with sshfs: sshfs user@host:/ /path/to/mountpoint |
15:37 | <&ToxicFrog> | (this is what the Nautilus support for sftp:// URLs is doing under the hood, although it mounts it someplace awkward) |
15:37 | < Turaiel> | I think I recall Perl breaking my install at one point |
15:37 | < Turaiel> | It threw an update into a ridiculous loop and broke things |
15:38 | < Turaiel> | Oh, that conversation was a while ago. Meh. |
16:02 | < RichyB> | ToxicFrog, I think nautilus likes to mount things at ~/.gvfs/../ |
16:03 | < RichyB> | If you drag and drop an icon from nautilus into a terminal, it'll type a shell-quoted absolute path at which that file is visible into the terminal |
16:03 | < RichyB> | Makes getting paths out of weird .gvfs things and aiming command-line applications at them much easier. |
16:04 | <&ToxicFrog> | RichyB: yes, I know. That doesn't make "~/.gvfs/$protocol for $user on $host" less awkward. |
16:22 | | Turaiel is now known as Turaiel[Offline] |
16:29 | <@froztbyte> | It's pretty ridiculous that gvfs still isn't nicely accessible without rolling a whole bunch of custom crap |
16:29 | <@froztbyte> | Anyway, that's gnome for ya |
16:35 | <@Tamber> | Syka_, very belatedly. If I wasn't at work, I probably would have seen it and whomped it. I was, though; and thus couldn't. Thanks, though. |
16:48 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
16:49 | | Orth [Reiver@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
17:47 | | Turaiel[Offline] is now known as Turaiel |
17:47 | | celticminstrel [celticminst@Nightstar-5d0169f9.dsl.bell.ca] has joined #code |
17:47 | | mode/#code [+o celticminstrel] by ChanServ |
18:03 | | AnnoDomini is now known as Wires |
18:25 | <@celticminstrel> | ...Github's contact page says "If you just want to say hi, that's cool too". |
18:53 | | Turaiel is now known as Turaiel[Offline] |
19:17 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
19:26 | | Turaiel[Offline] is now known as Turaiel |
19:27 | | Turaiel is now known as Turaiel[Offline] |
19:31 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
19:31 | | mode/#code [+o himi] by ChanServ |
19:37 | | Wires is now known as AnnoDomini |
19:37 | | AnnoDomini is now known as Wires |
19:48 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
20:01 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
20:01 | | mode/#code [+o himi] by ChanServ |
20:07 | | Kindamoody|afk is now known as Kindamoody |
20:09 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
20:09 | | mode/#code [+ao Derakon Derakon] by ChanServ |
20:10 | | * Derakon blarghs, eyes the frankencode he has to massage into something usable. |
20:10 | <&Derakon> | First step is getting the stuff to compile. |
20:10 | <&Derakon> | Which isn't helpful when it says "invalid or corrupt file" when I try to link against the third-party DLL. |
20:10 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
20:10 | | Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
20:11 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
20:18 | | Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
20:18 | | mode/#code [+o Pandemic] by ChanServ |
20:18 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
20:20 | <&Derakon> | Ah, my problem is that I have a .dll and no corresponding .lib. Fantastic. |
20:20 | | Kindamoody is now known as Kindamoody[zZz] |
20:23 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
20:23 | | mode/#code [+o himi] by ChanServ |
20:26 | <&Derakon> | Hm, can anyone decode these errors? Welcome to #Code! || Don't ask to ask, just ask. || Rants and monologues are en |
20:26 | | Derakon_ [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
20:27 | < Derakon_> | Argh, sorry about that. |
20:27 | < Derakon_> | Windows commandlines have shit support for copy/paste. |
20:27 | < Derakon_> | I meant to link to http://pastebin.com/QX8ZZCqm |
20:28 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [Operation timed out] |
20:29 | | Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
20:29 | | mode/#code [+ao Derakon Derakon] by ChanServ |
20:30 | | Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
20:32 | < Derakon_> | Hm, okay, I think my problem may stem from trying to make a DLL out of code that was originally meant to be an application. I think. |
20:35 | < Derakon_> | Aaaand now it can't find windows.h. |
20:35 | < Derakon_> | There are times I really hate dealing with code compilation. |
20:37 | < Derakon_> | I have '/I"C:\Program Files\Microsoft Platform SDK\Include"' in my flags, and Windows.h is in that directory, so why can't it see the damn thing? |
20:41 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
20:42 | | Wires is now known as AnnoDomini |
20:51 | < [R]> | Compiling is much nicer when you use an OS that doesn't hate developers. Also, maybe it's being case-sensitive about the filename? |
20:52 | < Derakon_> | ...right, that time the problem was that I was using "INCLUDE" as a definition in my makefile, overwriting the existing environment variable. |
20:52 | < Derakon_> | It's not case-sensitive. |
20:52 | < Derakon_> | ...shit, the third-party library I'm using insists on being an MFC app, I think. >.< |
20:54 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
20:54 | | mode/#code [+o himi] by ChanServ |
20:55 | | celticminstrel [celticminst@Nightstar-5d0169f9.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
21:20 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
21:20 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
22:03 | | Turaiel[Offline] is now known as Turaiel |
22:24 | < xybre> | Whoever posted that James mickens article article gets loads of kudos, that was hillarious. |
22:24 | <&McMartin> | TF gets the credit |
22:24 | <&McMartin> | I ran into it elsewhere and thought it looked familiar and linked it again |
22:24 | <&McMartin> | It looked familiar, of course, because TF had linked it |
22:28 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Operation timed out] |
22:30 | < ErikMesoy> | Yeah, it was great. And inspired me to a few unhelpful suggestions. "Code compilation trouble? Throw engineers, rum, and money at the problem until they invent a language that doesn't need compiling because it runs on high-level hardware." |
22:30 | <&McMartin> | Except Satan has defeated this dream =( |
22:30 | <&McMartin> | After the branches summoned him! |
22:35 | < xybre> | Didn't Dykstra have a rant about "english-like" languages that was pretty good? |
22:38 | <&McMartin> | He's most famous for "Why Pascal Is Not My Favorite Programming Language" which can largely be rebutted by "Borland Turbo Pascal 5.5 had none of these flaws" |
22:38 | <&McMartin> | There is a saying to the effect of "make it possible to program a computer in English and you will find that people cannot program in English." |
22:39 | <&McMartin> | A statement that is both true and false, imo, at least twenty and quite possibly forty years on. |
22:39 | <&McMartin> | True because getting the syntax right is not the hard part of programming |
22:39 | <&McMartin> | False because natural language contains many useful and highly expressive technologies that can be meaningfully appropriated for the right problem domains. |
22:40 | <&McMartin> | I know of two languages that did this, explicitly, as part of the design. |
22:40 | <&McMartin> | One of them is Perl, so, well, take that as you will |
22:40 | <&McMartin> | (The other is Inform 7, which exploits its problem domain (text adventures) in a way that the specifications are very english-like indeed, but doing so can be justified by many other principles) |
22:41 | <&McMartin> | (Like single-point-of-truth; an English-lite parser is part of the runtime and the user's primary mode of interaction; it needs to be configurable, and there's no reason to not have power that the *player* will have also available to the developer.) |
22:41 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
22:41 | | mode/#code [+o himi] by ChanServ |
22:42 | < [R]> | Ah... Borland, my first compiler. And second. And now they're dead. |
22:42 | <&McMartin> | MS headhunted everyone good and left the corpse to rot, more or less. |
22:43 | <&McMartin> | (My first, second, third, and fourth, if you count version differences) |
22:43 | < [R]> | I was |
22:44 | <&McMartin> | But yeah, one of the big critiques Dijkstra had of Pascal was "the size of an array is part of its type, which means that you can't write a general routine that operates on strings, and if you standardize on a size, nobody else did and so you can't interoperate with them" |
22:44 | <&McMartin> | To which the correct answer is "um, string is totally a type, check it out" |
22:45 | < [R]> | That name seems familiar |
22:45 | <&McMartin> | And by TP5 you also had inline assembler and pointers, and by TP7 you had a full object system that you generally didn't need to use because modules are enough for an awful lot. |
22:45 | < [R]> | I want to say "C++ guy?" |
22:45 | <~Vornicus> | Dijkstra's a big grumpy name in computer science |
22:45 | <&McMartin> | That's Stroustroup. |
22:45 | <&McMartin> | Vorn pretty much has it. |
22:45 | <&McMartin> | He's the You Damn Kids Get Out Of My Spanning Tree And Off My Lawn man of CS. |
22:45 | <~Vornicus> | His most famous actual /work/ is Dijkstra's Algorithm, a weighted graph traversal algorithm. |
22:47 | < [R]> | Ah |
22:47 | < [R]> | That'd be why (lib I'm using has that included) |
22:48 | < xybre> | McMartin: just becasue it *reads* like english, doesn't mean writing it is as simple as constructing any arbitrary sentance. |
22:49 | < xybre> | http://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html |
22:49 | <~Vornicus> | Which is a standard graph traversal algorithm where your "next node to look at" rule is "distance to get to the current node from the start + distance to get from current node to the next one" |
22:51 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
22:53 | <~Vornicus> | That mickens article made boingboing. |
22:54 | <&McMartin> | xybre: When people say "I want to program a computer in English" they mean "I want a robot butler that does everything I ask it to and knows everything it needs to to do those things, even when I don't, and which can resolve ambiguities in the way I intended even when I didn't know there were ambiguities" |
22:55 | <&McMartin> | They don't get to have nice things; you don't get to have that even with a fully sentient servant. =P |
22:56 | <&McMartin> | Also, yes, I7 took some heat for looking like it isn't a programming language, except for the part where it is *really obviously* a programming language |
22:56 | <&McMartin> | I like to describe it as people fearing lack-of-braces. =P |
22:57 | <~Vornicus> | I'm reminded suddenly of http://imgur.com/gallery/n8gnC2Q |
22:57 | <&McMartin> | And "now all red doors are open" is a better command than "objloop (d : Door) { if d.color == RED { d.open = true; } }" |
22:58 | <&McMartin> | But seeing a list of assertions like "A person can be on fire. A person is seldom on fire." does not leave a lot of room for doubt that you are dealing with an assertion-and-rule-based system. |
22:59 | | ErikMesoy is now known as ErikMesoy|sleep |
22:59 | <&McMartin> | Exactly how best to map this to models of execution is a matter of some debate; the creators of the language clearly are using a logic-programming-like paradigm, but I've always felt that I7 semantics were closer to ML's case-matching. |
23:01 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
23:01 | < ErikMesoy|sleep> | It strikes me that Python approaches fairly close: "for door in doors: if door.color is red: door.open()" |
23:01 | | celticminstrel [celticminst@Nightstar-5d0169f9.dsl.bell.ca] has joined #code |
23:01 | | mode/#code [+o celticminstrel] by ChanServ |
23:02 | <~Vornicus> | i don't even know what language McM is playing with that has "objloop" |
23:04 | <&McMartin> | That's I6. |
23:04 | <&McMartin> | (And that's basically the I6 that that I7 compiles into) |
23:07 | <~Vornicus> | aha |
23:09 | | * Derakon_ mutters at MicroManager. |
23:09 | < Derakon_> | It's kind of telling when my program becomes less stable only when it uses your libraries~ |
23:10 | < Derakon_> | (MicroManager is a hardware abstraction system, so it's reasonably possible that the fault in fact lies with the hardware it's controlling, but then I'd still say it should fail more gracefully than just by randomly hanging the program) |
23:19 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Operation timed out] |
23:20 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
23:20 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
23:26 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
23:31 | < xybre> | McMartin: yeah people really are afraid of lack of braces. I'm a Ruby coder by trade and I write my code in the anti-lisp style, so there's as little line noise as possible, almost no parens needed. People freak out. |
23:33 | <&McMartin> | I've come around on the unwisdom of going as brace-free as possible in C |
23:33 | < Derakon_> | Braces are necessary in C if only because "if (condition) doThing();" is a terrible idea. |
23:34 | <&McMartin> | That's the precise thing, yeah. |
23:34 | <&McMartin> | It's what gave us the deliciously evil and thankfully obsolete |
23:34 | <&McMartin> | #define for if (0); else for |
23:34 | < [R]> | Anti-Lisp style? |
23:34 | | * Derakon_ makes a little OpenGL drawing widget, draws a sadface onto the array of mirrors sitting in the microscope's light path. |
23:35 | <&McMartin> | :( |
23:35 | < Derakon_> | (It was not meant to be sad, but it's hard to draw with this thing) |
23:35 | < [R]> | McM: why would people redefine for like that? |
23:36 | < Derakon_> | R: to force use of braces. |
23:36 | < xybre> | Wait, did Blackberry *buy* QNX? |
23:36 | <&McMartin> | [R] Because earlier versions of the C++ standard had the construct "for (int i = ...)" be equivalent to "int i; for (i = ...)" |
23:36 | <&McMartin> | Which is basically never the thing you want |
23:36 | < Derakon_> | http://derakon.dyndns.org/~chriswei/temp2/DMDControlFace.png |
23:36 | <&McMartin> | So that #define changes the semantics of for to make "for (int i = ...)" have i expire at the end of the for loop |
23:37 | < xybre> | [R]: anti-lisp, a joke, since lisp is full of parens. |
23:37 | <&McMartin> | The standard eventually changed to be that behavior. |
23:37 | < Derakon_> | (That's the output of the camera, indirectly imaging the mirror array) |
23:37 | <&McMartin> | But, for instance, some versions of MSVC++ have the old behavior, because that was what the standard said |
23:37 | <&McMartin> | While gcc said "fuck that noise" and did its own thing |
23:37 | <&McMartin> | See also: reasons why C++ was not a viable language in general until like 2005 |
23:38 | <@Azash> | s/wa/i/ s/ i.+// |
23:39 | <@Azash> | Oop |
23:39 | <@Azash> | I messed that up, switch the order |
23:39 | <&McMartin> | Empirically untrue~ |
23:39 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
23:39 | | mode/#code [+o himi] by ChanServ |
23:41 | < Derakon_> | If C++ still isn't viable, then it's amazing how much code is being written in a nonviable language~ |
23:41 | < Derakon_> | Then again, people still use Java for new projects. |
23:41 | <&McMartin> | The "in general" is important. |
23:41 | <&McMartin> | C++ was a constellation of only coincidentally-related dialects during the 1990s. |
23:44 | | * Derakon_ goes poof. |
23:44 | | Derakon_ [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [[NS] Quit: leaving] |
23:46 | <&McMartin> | It wasn't really possible to get portable C++ source that made better guarantees than C until standard compilers were available and boost had seen some development |
23:50 | < xybre> | Derakon: people still use PHP and Cobol too. |
23:51 | <&McMartin> | COBOL is a DSL for dealing with punchcard stacks~ |
--- Log closed Sat Sep 28 00:00:09 2013 |