00:00:54 <b_jonas> Sgeo: what would a well curated app store be like? isn't the basic problem that everyone thinks they can get rich form writing closed source apps that don't exist yet and selling them on appstore, but then a hundred people think the same, and so a hundred people write bad closed source apps individually and none get rich?
00:01:28 <b_jonas> or are all the malware apps the problem?
00:01:58 <Sgeo> malware + low quality apps (+ bad permission system)
00:02:40 <Sgeo> Of course, if Apple had its way, and the web was brand new, they would not allow web browsers, iiuc
00:03:11 <zzo38> The official app store should be screened better so that you can check for malware and stuff. However, you should always be allowed to put your own programs without using app store at all, and I believe it more important to have the way to put files independently than to have an app store, although it is good idea to have both
00:03:48 <drdanmaku> seriously though, ms has an app store now, don't they?
00:04:18 <drdanmaku> but you can certainly go outside it, so the only thing left now is for people to write apps...
00:04:21 <Sgeo> drdanmaku: my understanding is that that's only for 'Metro' apps, which seems like a bit of a shame, considering Windows isn't used just for Metro
00:04:32 <Sgeo> I could be wrong
00:05:04 <b_jonas> drdanmaku: no idea, I think nobody buys windows programs, everyone uses cracked ones with malware instead, so nobody knows about the store or if it exists
00:05:09 <drdanmaku> they seem to have distanced themselves from the Metro stuff in Windows 10, so maybe that'll change
00:05:33 <b_jonas> haven't they just renamed it?
00:05:34 <drdanmaku> b_jonas: yeah, that sounds about right
00:06:17 <drdanmaku> b_jonas: well, they brought the normal desktop with the start menu back is what i mean. the apps are in normal windows instead of giant if you have a keyboard
00:06:47 <drdanmaku> i don't actually know the specifics of how "metro" worked since i didn't use windows 8 at all
00:07:20 <b_jonas> drdanmaku: uh, but that's just the UI part. aren't metro style apps also about a saner permission system that doesn't allow all the kludges to support old programs that write their data directly to a hardcoded "C:\foo", to encourage better programming style?
00:08:30 <Sgeo> If that was the primary end-user noticable thing about Metro, rather than the UI, I would gladly use Metro apps
00:09:08 <b_jonas> Sgeo: as an end user, sure, but developers might not want to write them
00:09:19 <b_jonas> and they especially might not want to port all their existing programs to it
00:09:30 <drdanmaku> Sgeo: maybe the problem with the app stores is that, if you're a big company putting lots of effort in to maintaining a store, why would you want to let people just go around it?
00:10:28 <Sgeo> Because you could still look 'user-friendly' to people by maintaining it. I guess though a lot of developers might not bother putting their apps in if they can just tell users 'go around it'
00:10:38 <Sgeo> If there's a difficult approval process
00:11:05 <drdanmaku> yeah, hard to approve + workaround doesn't seem like a stable setup
00:12:54 <b_jonas> is it possible at all to make the app store more user friendly than the web in general if the content is 100 different 50 cent apps for letting you switch the built-in led of your phone as a flashlight while showing ads on the screen and uploading all your personal data?
00:13:53 <Sgeo> That sounds like the Android app store, I don't know if the iOS app store is similar at all
00:14:04 <b_jonas> and I guess there's also 100 apps that don't even bother to let you switch the led, they only put the flashlight thing in the name and icon and description so you download them.
00:14:20 <b_jonas> Sgeo: it's got to be. the motivation of the developers is the same
00:14:41 <b_jonas> Sgeo: well, maybe there's somewhat fewer apps on the ios store because more people try to develop for android?
00:15:40 <b_jonas> I don't know how smartphones work these days
00:16:20 <FireFly> I imagine it could depend a lot on how much the company policies and restricts what apps are allowed on the app store
00:16:37 <b_jonas> sure, but they can't always make the developers keep those policies
00:16:46 <b_jonas> surely they don't allow malware either
00:17:11 <Sgeo> iOS has a review process, to my understanding
00:32:35 -!- Bicyclidine has quit (Ping timeout: 255 seconds).
01:14:47 -!- nisstyre has changed nick to cholera-virus.
01:27:30 <elliott> b_jonas: the android app store is much more open than the ios one
01:27:58 <elliott> apple exercise a lot of quality control (ymmv though -- there's still a ton of shitty flashlight apps but I don't think there's quite so much crap and outright lies compared to android)
01:34:14 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
01:35:03 <Sgeo> iOS has a settings app rather than having the various apps put settings in undiscoverable menus, right?
01:35:23 <Sgeo> Although I think Google's trying to get rid of menus, but ... Samsung still likes them I think :/
01:41:54 <Sgeo> I guess Settings is akin to Windows Control Panel, hmm
01:49:12 <oerjan> this euclidean norm thing isn't making my haskell look any good
01:49:34 <oerjan> probably why no one else has tried.
01:50:06 <oerjan> it's trivial in haskell _except_ for getting the output format exactly right.
01:50:20 <b_jonas> oerjan: then post a variant with saner output format
01:50:28 <oerjan> (i note fizzie complained about that in other places)
01:51:12 <oerjan> b_jonas: well i'm not sure there's _any_ format that wouldn't be awkward for some language.
01:51:54 <oerjan> even using a fixed number of decimals would only cut some of the cruft.
01:52:18 <Sgeo> "Reconsider visual indicators of physicality and realism. Bezels, gradients, and drop shadows sometimes lead to heavier UI elements that can overpower or compete with the content. Instead, focus on the content and let the UI play a supporting role."
01:52:24 <Sgeo> Isn't this a recent change of heart by Apple?
01:54:47 -!- boily has quit (Quit: TRANSNISTRIAN CHICKEN).
02:07:38 <quintopia> Sgeo: also, android has settings app like that
02:07:54 <Sgeo> quintopia: Google's against them, and I kind of have to agree that if you don't have a menu indicator, having to guess whether or not there are menus is a bad thing
02:08:13 <Sgeo> quintopia: for its own settings, or can third-party apps extend it?
02:15:49 <elliott> it's not so much a change of heart so much as people getting usurped
02:16:20 <elliott> aiui, jobs and forstall loved skeumorphism; ive hates it
02:18:12 <pikhq> Jobs does seem to have always adored skeumorphism.
02:20:06 <elliott> I don't like how obsessed with flat/borderless mush Ive seems to be from a usability perspective, but I am glad iCal no longer looks like http://cdn.arstechnica.net/2011/07/04/lion/ical-big.png.
02:23:02 <Sgeo> I guess there's no chance of iOS and OSX supporting custom theming?
02:23:55 <Sgeo> Also, I remember years ago seeing someone on iOS use an app, and some kind of number selector that looked like a wheel. Is that UI element still similar?
02:24:05 <Sgeo> Like, one of those toy encryption thingies
02:25:29 <Sgeo> http://timroadley.com/wp-content/uploads/2012/02/RolePicker.jpg
02:25:33 <Sgeo> Looks very skeumorphic
02:26:40 <elliott> iOS 7 was when Forstall got ousted and Ive got to put his grubby^Wspotless, pristinely crafted hands all over things.
02:28:11 <Sgeo> What does that control look like in iOS 7?
02:30:04 <Sgeo> Apparently, the answer is 'boring'
02:30:37 -!- cholera-virus has changed nick to nisstyre.
02:33:46 <zzo38> I tried compressing Zork I by using gzip and the result isn't very good. Do you know what can be better way?
02:34:09 -!- Xnuk has joined.
02:34:54 <Sgeo> Invent algorithm intended to compress games in that format?
02:35:02 -!- Xnuk has left.
02:53:24 <quintopia> solution: Microsoft Bob (also solution to everything)
02:55:48 <zzo38> I know that DEFLATE expects 8-bit data, and Z-machine packed text contains 5-bit characters, so maybe this has something to do with it? However, the compression software cannot always guess correctly whether it is text or other data, and has to work regardless of such thing.
02:56:30 <zzo38> (It is also not always predictable the alignment of the data)
02:57:13 -!- oerjan has quit (Quit: Bob was there, too).
03:00:59 <zzo38> I also try to think of, how I can use shift-reduce parsing in text-adventure game.
03:04:34 -!- ^v has quit (Read error: Connection reset by peer).
03:14:57 -!- ^v has joined.
03:19:50 <zzo38> Do you know much about shift-reduce parser?
03:31:10 -!- bb010g has quit (Quit: Connection closed for inactivity).
03:44:14 <Sgeo> Macbuntu does't seem to be booting
03:59:05 -!- MDude has joined.
04:03:56 -!- nys has quit (Quit: sleep).
04:08:18 <Sgeo> Why doesn't Ubuntu think my VirtualBox VM is x64?
04:08:35 <elliott> probably it isn't or you booted a 32-bit operating system
04:08:51 -!- MDude has changed nick to MDream.
04:09:09 <Sgeo> You mean as host? Because guest failed due to seeing i686 instead of x86-64 it was expecting
04:10:26 <Sgeo> Remaking VM and selecting Ubuntu (64-bit) seems to work
04:11:00 <elliott> probably the vm was 32-bit.
04:11:24 <Sgeo> I don't see a setting in the VM settings for that though
04:12:00 <elliott> I believe it is in the processor tab
04:12:11 <elliott> unless it has to be set at vm creation time
04:14:49 <Sgeo> Ubuntu seems to be a bit Mac like with the menu and the launcher... exept launcher icons are too big and it's on the left, pretty sure latter can be changed at least. What was ais saying the difference between Mac doc and the other thing was?
04:16:57 <Sgeo> Is installing Guest Additions in a LiveCD VM likely to confuse VirtualBox when the VM is shut down and guest additions aren't present anymore?
04:18:41 <Sgeo> Oh, VirtualBox Guest Additions need a restart, don't they :/
04:19:37 <elliott> you can't move it from the left unless they compromised on that
04:19:39 <elliott> also you can move the dock to the left.
04:19:44 -!- bb010g has joined.
04:20:18 <Sgeo> I think he was talking about something relating to folders though
04:21:59 <Sgeo> Doesn't pretty much /every other Linux distro/ come with virtual machine stuff in the kernel already?
04:22:04 <Sgeo> Or... something?
04:22:16 <Sgeo> At least, most of them have no problem quickly going fullscreen, which is all I really want
04:32:07 * Sgeo starts reading Thinking Forth
04:59:22 -!- MoALTz__ has joined.
05:02:26 -!- MoALTz_ has quit (Ping timeout: 272 seconds).
06:31:05 -!- TieSoul has joined.
06:35:17 -!- TieSoul has quit (Ping timeout: 245 seconds).
06:37:03 -!- TieSoul has joined.
06:44:27 -!- TieSoul has quit (Ping timeout: 245 seconds).
07:05:46 -!- zzo38 has quit (Remote host closed the connection).
07:30:49 <Sgeo> I should learn LLVM
07:33:42 <Sgeo> http://safecode.cs.illinois.edu/ why isn't this used for all C and C++ code?
08:03:33 <fizzie> Re skeuomorphism, http://interfacehallofshame.eu/www.iarchitect.com/realcd.htm and most of the other in-depth reviews on the same site.
08:04:02 -!- Hjulle has quit (Remote host closed the connection).
08:11:40 <fizzie> Probably http://interfacehallofshame.eu/www.iarchitect.com/phone.htm even more so.
08:13:07 <HackEgo> slist 10/19: Taneb atriq Ngevd Fiora Sgeo ThatOtherPerson alot
08:13:28 <Sgeo> `cat bin/slist
08:13:29 <HackEgo> echo -n "$(basename "$0")${@:+ }$@: "; tail -n+2 "$0" | xargs; exit \ Taneb \ atriq \ Ngevd \ Fiora \ Sgeo \ ThatOtherPerson \ alot
08:13:38 <Sgeo> WHat was that thing about it deleting itself?
08:14:26 <fizzie> I think oerjan removed that feature.
08:14:35 <fizzie> http://codu.org/projects/hackbot/fshg/index.cgi/rev/8470be3ffda0
08:15:15 <shachaf> Oh, it's all written out but it's updating a bit at a time?
08:16:07 <shachaf> That's a fancy bash variable thing.
08:17:10 <Sgeo> shachaf: not all written out, apparently
08:21:59 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
08:49:45 -!- conehead has quit (Quit: Computer has gone to sleep).
09:51:33 -!- Phantom_Hoover has joined.
10:13:05 -!- S1 has joined.
10:42:52 <int-e> @tell oerjan Oops, your hello hello world solution is much closer to my "local optimum" than I expected; apparently I had to rewrite the program in order to realize that the shared "world" string could be picked up from the final result list (having only one list helped). I had only tried a:b=["world","hello",a++"!"], resulting in 86 characters. Funny.
10:48:30 <Sgeo> There may be an advantage to run-time metaprogramming compared to eariler-than-runtime-metaprogramming... it may be easier for other languages to call into that language without inadvertantly being forced not to use your metaprogramming constructs
10:48:59 <Sgeo> Thinking of Factor's bindings into Python, where it can call things like getattr and setattr
11:10:59 -!- S1 has quit (Quit: S1).
12:02:24 -!- MoALTz__ has quit (Quit: Leaving).
12:03:04 -!- MoALTz has joined.
12:18:09 -!- Patashu has quit (Ping timeout: 245 seconds).
12:41:17 -!- Frooxius has quit (Quit: *bubbles away*).
12:47:37 -!- boily has joined.
13:13:31 <elliott> "We like controlling the startup of the system with shell scripts that are readable" I wish prominent systemd criticism didn't almost always leave the distinct impression that the author has never actually seen or used sysvinit.
13:17:27 <boily> quintopia: SYN SYN ENQ?
13:19:01 <boily> I firmly believe systemd is a huge step in the right direction.
13:19:38 <elliott> whether or not systemd is the answer, sysvinit certainly isn't
13:43:17 -!- MDream has changed nick to MDude.
14:38:15 <int-e> "we see systemd being very prone to mission creep and bloat" is closer to my personal worries
14:41:17 <int-e> (there's a bit too much policy baked into systemd already; a while ago I was looking for a hook for the action taken on closing the lid of a laptop, and there doesn't appear to be one, just a few options for tweaking the builtin policy of whether to suspend or not)
14:50:26 <int-e> In any case, systemd is a better approximation of what I want than sysvinit. (Every serious distribution had its own infrastructure of init helper scripts for managing dependencies, and that functionality is better off in init itself. To me that would seem to be a good place to stop, but the systemd folks have bigger plans.)
14:51:19 <elliott> yes. I think there is space for reasonable systemd criticism
14:52:24 <elliott> unfortunately, all the /prominent/ criticism seems to amount to pure conservatism / very vague philosophical objections / accusing everyone in sight of corruption / outright personal nastiness
14:53:08 <elliott> but what do you expect from someone threatening to create a fork named "Pure Debian by Veteran Unix Admins"
14:54:20 <boily> there is such a thing as PDVUA? bletch.
15:24:52 <int-e> hmm. http://0pointer.net/blog/projects/stateless.html
15:25:43 <int-e> so init modifies /etc/passwd /etc/shadow and /etc/groups, how quaint.
15:26:33 <int-e> [where init=systemd]
15:29:36 <elliott> tbf, "some component systemd does X" is very far away from "pid 1 does X"
15:30:56 <int-e> So has anybody forked systemd yet?
15:31:24 <int-e> I really dislike how it is used as a vehicle for pushing visions like this one, http://0pointer.net/blog/revisiting-how-we-put-together-linux-systems.html
15:32:00 <elliott> yes, but not the kind of people you'd want to associate with :p
15:32:19 <elliott> by which I mean: yes, 4chan has, the worse parts of 4chan even
15:36:29 <MDude> /a/ wrote a systemd fork?
15:36:38 <KingOfKarlsruhe> int-e: a useless fork of systemd http://uselessd.darknedgy.net/
15:37:58 <Phantom_Hoover> "Debian leaders can go on evaluating more init systems, just not impose one that ignores the needs of most of its users."
15:38:11 <Phantom_Hoover> i don't think these guys actually know anything about the debian userbase
15:47:48 <int-e> KingOfKarlsruhe: interesting, thanks
16:01:05 -!- nys has joined.
16:11:08 <HackEgo> [wiki] [[Brainfuck bitwidth conversions]] http://esolangs.org/w/index.php?diff=40628&oldid=40259 * Rdebath * (+854) Rambling about I/O
16:12:03 -!- AndoDaan has joined.
16:25:34 -!- boily has quit (Quit: INCRIMINATING CHICKEN).
16:35:56 -!- nys has quit (Ping timeout: 260 seconds).
16:38:42 <quintopia> it annoys em when people use "called as" to mean "called". "called as" should be reserved for describing API calls
16:51:04 * MDude called as his mom's cell phone.
16:51:49 <int-e> MDude: that's a serious identity crisis you're having there
16:53:15 <quintopia> wish there was an easier way to reach that guy
16:54:49 <quintopia> but here's one i saw: "Electrodes used in neuroscience are called as multielectrode array..."
16:56:16 <int-e> so what's the author's native language?
16:57:10 <Bike> yeah, that's just ungrammatical
16:58:22 <Bike> also kind of nonsensical, sometimes you do use an electrode by itself
17:11:42 <int-e> or call an electrode as itself
17:14:25 <MDude> So that's what you mean by pointers?
17:14:57 <int-e> why are we discussing dogs now?
17:16:06 <int-e> https://en.wikipedia.org/wiki/Pointer_%28dog_breed%29
17:16:15 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
17:21:09 -!- zzo38 has joined.
17:29:53 <Taneb> I'm going on a quest to get decent food on a Sunday evening
17:33:33 <Taneb> Or I could make pasta!
17:34:02 <MDude> Good luck making pasta
17:36:02 -!- AndoDaan_ has joined.
17:37:19 -!- AndoDaan has quit (Ping timeout: 245 seconds).
17:37:42 -!- tromp_ has quit (*.net *.split).
17:37:43 -!- nisstyre has quit (*.net *.split).
17:37:43 -!- applybot has quit (*.net *.split).
17:38:14 -!- tromp_ has joined.
17:39:25 -!- nisstyre has joined.
18:14:16 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
18:16:16 <mroman> fizzie: there's selectwords :)
18:17:17 <AndoDaan_> mroman: you're gonna have to teach me how to use GO and GZ later... (if you feel like it)
18:18:07 <blsqbot> Ain't nobody got time fo' dat!
18:18:54 <mroman> If you want to map over a range from zero or one you can use GO/GZ
18:19:04 <mroman> for example all squares from 0..9
18:19:15 <blsqbot> {0 1 4 9 16 25 36 49 64 81}
18:19:20 <mroman> which is the same thing as
18:20:14 <mroman> also B! automatically maps over lists
18:20:20 <blsqbot> {"0" "1" "2" "10" "11" "12" "20" "21" "22" "100" "101" "102" "110" "111" "112" "
18:20:27 <AndoDaan_> I see some of your best answer use it.
18:20:29 <mroman> so you don't need m[ for that.
18:21:15 <mroman> but like ?i for example, it auto-detects lists
18:21:18 <blsqbot> ERROR: (line 1, column 9):
18:21:26 <AndoDaan_> ah this would work for hello hello world
18:21:43 <mroman> 99rz{3B!}m[ is the same thing as 99rz3B!
18:21:46 <AndoDaan_> i haven't looked at those post mortems yet.
18:22:46 <mroman> the language ref mentions deepzip2 for ConvertBase (B!)
18:23:12 <AndoDaan_> yeah, i never got into deepzip... can you give me the cliff notes?
18:23:27 <AndoDaan_> i'm sure i've used it, but maybe with not much understanding.
18:23:31 <mroman> if the lref mentions either deepmap, deepzip or deepzip2 it means that the command auto-detects lists and acts accordingly
18:24:03 <mroman> AndoDaan_: deepmap means, that a Command that takes no arguments will map itself over a list if it's given a list
18:24:12 <mroman> *a command that takes one arguments
18:24:40 <blsqbot> {0.5403023058681398 -0.4161468365471424 -0.9899924966004454}
18:24:45 <blsqbot> {0.5403023058681398 -0.4161468365471424 -0.9899924966004454}
18:25:02 <mroman> ^- Tc detects that you provided a list instead of a Number and will automatically call map (m[) for you
18:25:11 <mroman> this behaviour is called deepmap
18:25:59 <mroman> !blsq {10 11 12}{3 4 5}.%
18:26:22 <mroman> .% has deepzip behaviour. That means it detects if you provide two lists and will call zipWith for you
18:26:28 <mroman> !blsq {10 11 12}{3 4 5}{.%}Z]
18:26:43 <mroman> ^- .% automatically calls Z] for you
18:27:07 <mroman> !blsq {1 2 3 4}{5 6}||
18:27:25 <mroman> Or (||) has deepzip2 behaviour
18:27:44 <mroman> deepzip2 behaviour means, that the command will detect if you provided it a list and will boxcycle the non-list argument
18:28:04 <mroman> !blsq {1 2 3 4}5bxcy{||}Z]
18:28:19 <mroman> || does the bxcy{}Z] automatically
18:28:43 <mroman> !blsq {1 2 3 4}3bxcy{B!}Z]
18:29:38 <mroman> {}m[ is deepmap, {}Z] is deepzip and bxcy{}Z[ is deepzip
18:30:30 <mroman> on the other hand: You just need to know that if there's a deep* mentioned for a command, that command will work magically with lists too :)
18:30:58 <mroman> ps for example mentiones deepmap
18:31:26 <mroman> will magically work :)
18:31:55 <mroman> !blsq {" 5 5.+" "6"}{ps}m[p^
18:32:03 <mroman> !blsq {"5 5.+" "6"}{ps}m[p^
18:32:16 <mroman> this can be shortenend too
18:32:52 <mroman> AndoDaan_: The terminology is
18:33:03 <mroman> applying a function to every element to a list is called a "map"
18:33:30 <mroman> taking elements from two listts and apply a function to them is called "zipwith"
18:33:44 <mroman> !blsq {1 2 3}{4 5 6}{.+}Z]
18:33:51 <AndoDaan_> I really should know that, but it never solidifies in my brain. maybe this time.
18:34:02 <mroman> ^- that's a zip. It's {(1 + 4) (2 + 5) (3 + 5)}
18:34:37 <mroman> If you have a list and one non-list
18:34:46 <mroman> you can't use zipWith because 5 isn't a list
18:34:57 <mroman> !blsq {1 2 3 4}5{.+}Z]
18:34:57 <blsqbot> ERROR: Burlesque: (m[) Invalid arguments!
18:35:10 <mroman> but you can convert the 5 into an inifinet list of 5s
18:35:18 <mroman> !blsq {1 2 3 4}5bxcy{.+}Z]
18:35:41 <mroman> ?+ does this automatically for you
18:36:03 <mroman> zipWith is actually zip + map
18:36:09 <mroman> !blsq {1 2 3}{4 5 6}z[
18:36:17 <mroman> !blsq {1 2 3}{4 5 6}z[{p^.+}m[
18:36:27 <mroman> ^- that's what zipWithPush does
18:36:43 <mroman> zipWith is zip followed by a map
18:37:04 <lambdabot> zipWith f (a:as) (b:bs) = f a b : zipWith f as bs
18:37:42 <mroman> anyway, the lref says Z[ "Defined as z[\/m["
18:38:04 <mroman> !blsq {1 2 3}{4 5 6}z[U[
18:38:32 <mroman> !blsq {1 2 3}{4 5 6}z[u[
18:38:45 <mroman> that just reverse what a zip does
18:38:54 -!- not^v has joined.
18:39:22 <mroman> I hope I made some things clear :)
18:39:47 <AndoDaan_> a lot clearer. i'm sure i'll have some questions later.
18:40:54 <mroman> my solution is based no si for hello hello world
18:41:07 <mroman> !blsq {1 2 3 4}{0 0 1 1 2 2}si
18:41:23 <mroman> si takes a list and a list of indices
18:41:37 <mroman> and it will pick the elements out from the first list
18:42:10 <mroman> sw is selectwords which is si but it works on words
18:42:22 <mroman> !blsq "hi there you cat"{0 2 1 3}sw
18:45:22 <AndoDaan_> got to go. i'll bbl. thanks again.
18:50:07 -!- AndoDaan_ has quit (Ping timeout: 272 seconds).
18:56:33 <mroman> this is actually very impressing
18:56:45 <mroman> that's 12 charecters per second.
18:59:11 -!- not^v has quit (Quit: Leaving).
19:23:51 <mroman> `cat dontaskdonttelllist
19:23:52 <HackEgo> cat: dontaskdonttelllist: No such file or directory
19:24:06 <mroman> `cat donttelldonktasklist
19:24:06 <HackEgo> cat: donttelldonktasklist: No such file or directory
19:24:12 <HackEgo> :-( \ a.out \ bdsmreclist \ bin \ canary \ cat \ complaints \ :-D \ dc \ dog \ etc \ factor \ head \ hej \ hello \ hello.c \ ibin \ index.html?dl=1812 \ interps \ lib \ paste \ pref \ prefs \ quines \ quotes \ share \ src \ test.c \ Wierd \ wisdom \ wisdom.pdf
19:24:18 <HackEgo> ` \ ^.^ \ ̊ \ ! \ ? \ ¿ \ @ \ ؟ \ WELCOME \ \ \ 8ball \ 8-ball \ aaaaaaaaa \ addquote \ addwep \ allquotes \ analogy \ anonlog \ as86 \ aseen \ bf \ bienvenido \ botsnack \ bseen \ buttsnack \ calc \ CaT \ catcat \ cats \ cc \ cdecl \ c++decl \ chroot \ coins \ CoInS \ complain \ complaints \ danddreclist \ define \ delquo
19:24:25 <mroman> `run ls bin/ | grep ask
19:24:42 <mroman> `cat bin/dontaskdonttelllist
19:24:42 <HackEgo> echo -n "$(basename "$0")${@:+ }$@: "; tail -n+2 "$0" | sed 's/./&/g' | xargs; exit \ quintopia \ coppro \ myname \ mroman(use query)
19:25:12 <HackEgo> dontaskdonttelllist: quintopia coppro myname mroman(use query)
19:25:55 <mroman> @ask ais532 can you do a "programming languages with no Hello world" list?
19:26:20 <mroman> @ask ais523 can you do a "programming languages with no Hello world" list?
19:31:13 -!- drdanmaku has joined.
19:39:26 -!- zzo38 has quit (Read error: Connection reset by peer).
19:57:58 <Sgeo> My new motto is 'minimize different'
19:59:21 <Vorpal> It turns out vlc does not work over ssh X forwarding. Shouldn't have been surprising really
20:00:10 <pikhq> Might work better via xpra.
20:00:42 -!- Patashu has joined.
20:02:04 <Vorpal> pikhq, interesting, without -X to ssh I get ASCII art
20:02:13 <Vorpal> Also pulse is fucking up badly on this laptop
20:02:20 <pikhq> xpra is a fairly spiffy X forwarding thing. Basically it runs your app in Xvfb and acts as a compositing window manager to get the rendering of it. And then it encodes to h.264 before streaming over the network.
20:02:23 <Vorpal> How do I disable pulse on Ubuntu...
20:02:32 <Vorpal> I'll get jack or something instead...
20:02:48 <pikhq> So basically it replaces X remoting with a much better protocol.
20:02:50 <Vorpal> pikhq, so the quality will not be as good
20:03:20 <pikhq> Yes, but what do you *want* from a generic network display rendering schema?
20:03:37 <pikhq> Low-latency video encoding is pretty much the only viable solution.
20:03:37 <Vorpal> pikhq, that is why X forwarding is nicer
20:03:49 <Vorpal> vlc could just forward the video data as is
20:03:55 <Vorpal> without re-encoding it
20:04:19 <pikhq> X forwarding *would be* nicer if a) Xlib didn't suck as bad b) users of X used its primitive operations instead of basically using it as a stupidly inefficient framebuffer renderer.
20:04:54 <pikhq> Note that using X forwarding for a video display program would be shoving the *decoded* video over the network.
20:05:07 <Vorpal> Now how to solve: [0x7f8790000b78] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 300 ms)
20:05:07 <Vorpal> [0x7f8790000b78] main input error: ES_OUT_RESET_PCR called
20:05:09 <pikhq> Which, unless you're on quite an awesome link, Isn't Going To Work.
20:05:18 <Vorpal> Which happens with locally playing the files
20:05:58 <pikhq> Is it a 10 gigabit lan?
20:06:14 <Vorpal> pikhq, Nope, it is 1 gbit ethernet
20:06:42 <Vorpal> pikhq, however, what I'm saying, since I'm playing a mp4 anyway, it can just forward that compressed data
20:06:54 <Vorpal> And let it be decoded by the local GPU on the target system
20:07:02 <pikhq> X doesn't work that way.
20:07:10 <Vorpal> Since if played locally vlc it would be decoded using the GPU
20:07:13 <Vorpal> pikhq, no but it should
20:07:36 -!- nisstyre has quit (Changing host).
20:07:36 -!- nisstyre has joined.
20:08:53 <pikhq> In *theory* you can just barely do 1080p30 on that link, but you will literally be using all the capacity.
20:09:11 <pikhq> And that's assuming that you're doing nothing more than shoving the raw video on Ethernet frames...
20:09:16 <pikhq> Which you're not. :)
20:09:31 <Vorpal> pikhq, well the video is 480p
20:09:38 <Vorpal> But now I scped it to local
20:10:03 <pikhq> Oh, then if you're *not scaling* then it'll maybe hypothetically work over X on that LAN.
20:10:40 <fizzie> I've used mplayer -vo x11 over SSH-forwarded X.
20:10:46 <fizzie> More of a slideshow than a video feed, though.
20:11:09 <elliott> pikhq: xpra supports multiple encodings, not just h.264
20:11:27 <pikhq> Oh, right. It can stream PNG over the network too, can't it?
20:11:49 <pikhq> I think h.264 is the default though.
20:11:50 <elliott> plus simpler RLE type stuff
20:11:58 <elliott> it can even do vp8 if you want to for some reason
20:11:59 <Vorpal> You know what, sshfs is easier at this point
20:12:00 <pikhq> Works quite well for me.
20:12:21 <pikhq> Riiight, yeah! I remember having it built wrong and it didn't have h.264 but did have vp8 at one point.
20:12:33 <pikhq> VP8 is *not* a low latency codec. :)
20:14:23 <fizzie> About 2fps for "mplayer -vo x11" of a 574p video from the work-workstation to home over two SSH's (can't connect to workstations directly) and a 10M VDSL2 link.
20:14:47 <fizzie> I seem to recall this working better when I was living in the university student apartments, which network-topologically speaking were quite a lot closer.
20:16:02 <Vorpal> fizzie, what about between devices on your lan?
20:17:19 <fizzie> I'm not sure I have any convenient devices to test with, without booting up the laptop.
20:17:44 <fizzie> The headless boxes don't seem to have mplayer installed.
20:18:51 <Vorpal> pikhq, it is funny that playing this over sshfs works just fine
20:19:17 <Vorpal> Also, how does one do software mixing with pure alsa now again? PA clearly isn't working out for me
20:19:42 <pikhq> Well yeah. sshfs is a bit hackish, but you've got a lot of things going for you. Like "streaming encoded video instead of decoded".
20:20:04 <fizzie> It's supposed to just work, but I seem to have ended up with an .asoundrc like http://sprunge.us/CMaK for some reason.
20:20:17 <Vorpal> pikhq, I was like "I don't want to have to set up fucking nfs on this laptop, even though that desktop with the files has it"
20:20:33 <pikhq> May NFS be fucked.
20:20:33 <fizzie> I've completely forgotten what *didn't* work that made me fiddle with that.
20:20:37 <Vorpal> pikhq, well I tried to just set the real sound output in vlc settings, (alsa), didn't work out
20:20:47 <Vorpal> pikhq, nfs is great, much lower overhead than cifs
20:21:05 <Vorpal> pikhq, makes a massive difference when streaming 1080p videos from the RPi
20:21:27 <Vorpal> pikhq, i.e. it works over nfs3, but not cifs. Haven't tried nfs4
20:21:55 <fizzie> One of my scripts had stopped working due to some NFS-related file locking thing; I had kind of assumed they'd ironed out those kinks.
20:22:29 <fizzie> Of course it's some sort of "enterprise" storage system behind it.
20:23:07 <fizzie> (It did an exclusive lock on a file to make sure only one copy of a thing was running at a time, and some change or another made it never able to lock the file.)
20:24:37 <Vorpal> No clue how it works really
20:24:54 <fizzie> Now it just does a pgrep on the command, which is such a hack, but works fine in practice.
20:25:26 -!- Patashu has quit (Ping timeout: 240 seconds).
20:25:38 <Vorpal> fizzie, why not a local lock file?
20:26:29 <Vorpal> And yeah, pgrep will have race conditions
20:27:03 <fizzie> Well, I mean, it was in the "home directory" of the tool. It could lock some /tmp file in theory, I guess. I doubt I have any access to anything else local on that system.
20:27:28 <Vorpal> Okay firefox on this laptop is WEIRD. If I log into google, google mail and google search result gets into a instant reload-cycle
20:27:35 <Vorpal> Works fine if I'm not logged in
20:27:40 <fizzie> Hmm, that's curious. There's the same path mounted over NFS3 and NFS4 at two different mount points.
20:27:47 <fizzie> I assume they've been fiddling with the setup.
20:28:04 <fizzie> Probably the reason why it stopped working out of the blue, too.
20:30:08 <Vorpal> Hm what init daemon does Android use?
20:30:45 <fizzie> Something custom, I believe.
20:31:48 <fizzie> But closer to a sysv style "rc scripts" than a full-blown "does everything" thing like systemd.
20:31:55 <Vorpal> I mean, these days it seems that the only option to avoid systemd in the future will be gentoo pretty much, with openrc. Debian is going to switch in next release. So is Ubuntu at some point
20:31:58 <fizzie> There's a "system server" too, though.
20:32:14 <fizzie> Debian is having a debate about it again around this time.
20:32:15 <Vorpal> fizzie, and it definitely doesn't use PA, but instead something that works
20:32:24 <Vorpal> Oh really? That is good
20:32:55 <Vorpal> Yeah I don't want an init daemon that does more than just handle processes. Having init crash is the worst possible thing that could happen really.
20:33:13 <fizzie> I didn't follow the details, but AIUI someone insisted on a General Resolution, which means all developers could theoretically comment on it.
20:33:23 <Vorpal> Ouch, there are already CVEs for systemd
20:33:23 <elliott> the debate is kind of ridiculous
20:33:38 <elliott> it's like 2-3 weeks before feature freeze and it's explicitly designed to ensure gnome gets removed from jessie
20:33:50 <elliott> it's... basically just spiteful legislative trolling?
20:33:59 <Vorpal> So they are going into feature freeze soon
20:34:27 <fizzie> IIRC, it was a Technical Committee decision the last time. Though I follow Debian politics really poorly.
20:34:40 <elliott> I don't think I've actually heard of systemd-the-pid-1 crashing on anyone.
20:34:45 <elliott> are those CVEs actually for pid 1?
20:35:10 <fizzie> How's Ubuntu doing these days, still Upstart or moving to systemd following Debian or what?
20:35:17 <Vorpal> Hm that is a good question, my firefox just crashed (good thing that isn't integrated into upstart which this laptop uses!)
20:35:23 <elliott> fizzie: planning to move to systemd
20:35:39 <fizzie> I'm typing this on a systemd Debian server, FWIW.
20:35:58 <Vorpal> I wonder, could one use daemontools for pid 1?
20:36:07 <elliott> really I would not write systemd and I don't like a lot of its decisions but there honestly is an awful lot of FUD and nastiness surrounding it.
20:36:12 <Vorpal> That seems like the optimal solution after initramfs finished
20:36:14 <elliott> use runit if you want that
20:36:24 <elliott> since that's what it's designed to be
20:36:40 <Vorpal> elliott, KISS daemon supervision basically
20:36:43 <elliott> https://github.com/chneukirchen/ignite
20:37:27 <Vorpal> elliott, I'm not on arch any more, but thanks all the same
20:37:29 <elliott> spoiler, though: probably the only thing you'll personally experience by zealously avoiding systemd is just more fuss for yourself. I'm not saying that's a defence of anything but it is really not a burden to use systemd in practice and you can probably toggle off whatever you don't like about it.
20:37:42 <elliott> Vorpal: just saying there are alternatives that are not gentoo
20:37:59 <Vorpal> Well that is good at least
20:38:19 <Vorpal> Last I looked at systemd it didn't support remote syslog (since it swallows syslog)
20:38:21 <elliott> alpine linux uses musl/busybox/openrc
20:38:34 <elliott> Vorpal: I doubt that. it has always been able to forward syslog right on to an actual syslog daemon.
20:38:44 <elliott> like, if you were running rsyslogd before, you could always tell systemd to just forward it on to that.
20:39:00 <Vorpal> Right okay, so to local rsyslogd, then to remote rsyslogd
20:39:24 <Vorpal> Alpine uses musl, which is a problem for me, since I use some binary programs where I don't have the source, and that use glibc
20:39:31 <Vorpal> Intel Compiler for example
20:39:45 <Vorpal> Also last I looked musl had some locale issues iirc
20:40:23 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20141019-boot.svg so much stuff in a system, though
20:41:07 <elliott> Vorpal: you can just install glibc too?
20:41:26 <elliott> if the executables could statically link glibc...
20:41:52 <elliott> well, if it dynamically links to like big huge libraries that you only have built with musl and there's ABI problems then maybe (but musl is ABI-compatible with glibc to some degree)
20:41:58 <elliott> that's kind of an awful way to distribute binaries though :p
20:42:04 <fizzie> The feeling I've gotten from Android is not that the systems are any sort of bastion of cleanliness and good design, when it comes to the Linux parts underneath.
20:42:34 <elliott> yeah, bionic seems to be about half of a libc.
20:43:10 <Vorpal> Yes Android has issues definitely
20:44:10 -!- AndoDaan has joined.
20:44:20 <elliott> anyway I think runit type systems are a bit underwhelming, there are some nice things in systemd that I would miss in them; they are certainly way better than sysvinit though
20:44:29 <elliott> clearly run launchd on linux!
20:44:47 <elliott> launchd is probably pretty much to "blame" for systemd anyway since systemd started as basically ripping off launchd for linux without xml
20:44:52 <fizzie> Wonder what "colord.service" is in that boot log. A color profile thing?
20:45:26 <elliott> "Starting infrequently used on-demand socket-based daemons from launchd seems like it could open the main system process to a potential denial of service attack. I have not explored this idea or researched to see if it has already been tried, but I would opt for inetd/xinetd over launchd."
20:45:33 <elliott> okay launchd FUD is... way weirder than systemd FUD
20:47:02 <elliott> fizzie: incidentally, you can add cpressey to the list of UK (former) #esoteric people, apparently
20:47:15 <fizzie> elliott: I don't think I knew that.
20:47:36 <fizzie> elliott: Makes sense, though. Isn't there something very British about Befunge?
20:47:37 <Vorpal> elliott, on demand socket? So it basically xinetd/inetd as well?
20:47:47 <Vorpal> How would it be more prone to DOS than those
20:47:53 <elliott> Vorpal: launchd/systemd both do socket activation of services
20:48:01 <AndoDaan> when did chris pressey stop being active on the esoteric wiki?
20:48:04 <Vorpal> elliott, Same as xinetd/inetd then
20:48:10 <elliott> "what if you DoS pid 1?" has to be the oddest objection I've heard to that
20:48:25 <elliott> "better use inetd instead, everyone knows that's secure and robust"
20:48:50 <fizzie> elliott: Incidentally, despite the cliché, apparently it rains more here than it does in London, at least when looking at total precipitation numbers.
20:48:53 <Vorpal> Well okay, xinetd crashing is less of a problem than pid 1 crashing, I'll admit that.
20:49:36 <elliott> fizzie: you'd be in london, then?
20:49:52 <Vorpal> I wish this laptop had a nicer screen. IPS or something
20:49:52 <fizzie> elliott: Thereabouts, yes, if I take the deal.
20:50:03 <Vorpal> I hate this TN viewing angle nonsense
20:50:16 <elliott> fizzie: I hear germany is totally awful.
20:50:25 <fizzie> I'm probably going to prod the Germans soon, if I don't hear from them.
20:51:25 <fizzie> As far as places-to-live go, it seemed quite nice; it's a lot different from London, though, being a city of about 250k people.
20:51:57 <elliott> yeah, 250k is about the population of the UK.
20:52:32 <fizzie> "It" being the place in Germany that job would be in, not Germany in general.
20:53:08 <elliott> germany has twenty five thousand million people in it.
20:53:33 <Vorpal> Oh god, what a terribly large city
20:53:51 <Bike> what are the error bars on these population counts
20:54:03 <fizzie> Bike: Larger than the absolute value of the measurement.
20:54:09 <fizzie> Could be negative people.
20:54:22 <Bike> so you're saying there might be sixty thousand million people in germany
20:54:24 <Bike> that's pretty intense
20:54:48 <elliott> germany's rate of immigration is very high
20:54:52 <Bike> that's 70k people per km²
20:55:00 <elliott> they have very small apartments.
20:55:14 <Bike> 168k for the sixty thousand million
20:55:34 <Bike> .1681 people per m². doable
20:55:43 <elliott> everyone who moved in in the past few seconds is a partner of someone already living there, they share the apartment
20:55:47 <Vorpal> elliott, no, they have very high buildings, with many subsurface levels as well
20:56:00 <elliott> Vorpal: no, germans have yet to discover architecture
20:56:23 <Bike> they have those AA towers from wwii and other than that they have to live in pelt tents
20:56:46 <elliott> Bike: it's kind of weird to think you sort of could house sixty thousand million people in germany
20:56:51 <elliott> like they'd be really cramped but...
20:56:59 <elliott> that figure is kinda workable
20:57:05 <elliott> if you really, really wanted to
20:57:06 <Bike> like, in an arcology, maybe.
20:57:18 <fizzie> That's, what, six square metres per person?
20:57:19 <elliott> who said anything about archaeology?
20:57:31 <elliott> fizzie: well, ".1681 people per m²".
20:57:59 <fizzie> Sounds like one sixth of a person, yes.
20:58:13 <elliott> pretty sure there are apartments in NYC smaller than that
20:58:18 <Bike> 5.9488 m² per person
20:58:38 <Bike> it suddenly seems kind of weird that we use surface area in these measurements
20:58:45 <Bike> given that i'm sitting in the fifth floor of a building atm
20:58:50 <elliott> sink, toilet, put the bed a layer up, got enough space for like, a fridge and a microwave and a chair, maybe
20:59:07 <elliott> if you tried really, really hard
20:59:18 <fizzie> It's hard to say where the ceiling of a country is, if you wanted to use volume instead.
20:59:24 <Vorpal> <Bike> it suddenly seems kind of weird that we use surface area in these measurements <-- as opposed to?
20:59:45 <Bike> i think the main problem is that you need other things too, like, is every one of these 6 m² blocks also a farm and sewage treatment plant
20:59:56 <Vorpal> Bike, I mean what else than m² would you use
20:59:56 <Bike> or both. manure.
21:00:05 <elliott> now there would be a problem that you couldn't fill the space with anything but houses
21:00:13 <elliott> some people could run stores out of their apartments
21:00:19 <elliott> supplies could come in through the roof, dropped off by air
21:00:25 <elliott> you'd keep a map of the Grid
21:00:26 <fizzie> Each of the 6 square-metre plot of land must clearly be an entirely self-sufficient tower, then you have no problems.
21:00:34 <Bike> yeah that makes sense
21:00:41 <elliott> again, yet to discover architecture... keep up :p
21:01:10 <elliott> can't stop imagining this overpopulated german hellscape...
21:01:24 <elliott> phew. you sure don't want to live there, do you, fizzie?
21:01:41 <Bike> did you know that one time HR Giger designed arcologies for Switzerland shaped like satanic pyramids, and sent the design to the swiss chancellor
21:01:46 <Bike> some of his best work imo
21:01:47 <fizzie> What's the canonical population count of Trantor? w
21:01:55 <fizzie> 45 billion, apparently.
21:02:01 <Bike> didn't trantor have underwater oceans and farms
21:02:08 <fizzie> That doesn't actually sound like all that much.
21:02:14 <Bike> well it doesn't /now/
21:02:41 <Bike> elliott: alas, there were some issues with the plan to use felons to man the radioactive waste disposals in the pyramid cores
21:02:43 <fizzie> "Its land surface of 194,000,000 km² (75,000,000 miles², 130% of Earth land area) --" it's even bigger.
21:02:50 <AndoDaan> wasn't trantor like the home of the secrect second foundation peeps?
21:03:10 <Vorpal> What is Trantor from now again?
21:03:13 <Vorpal> I heard the name before
21:03:15 <fizzie> AndoDaan: No, it was the center of the Empire.
21:03:21 <Bike> AndoDaan: that was after the empire collapsed
21:03:30 <Bike> yeah i think they were
21:03:37 <fizzie> AndoDaan: The Foundation was placed in Terminus.
21:03:41 <Bike> anyway if every person on earth got 6 m² we could fit 86 trillion peeps
21:03:44 <Bike> sounds legit tbh
21:03:55 <Bike> stand on zanzibar mother fuckers
21:03:59 <elliott> Bike: we'd have to do something about the oceans...?
21:04:04 <Bike> fuck the oceans
21:04:25 <elliott> I'm ready for this horrifying dystopia of torment
21:04:27 <Bike> only 25.07 trillion if you stick to land like a fucking wuss
21:04:30 <AndoDaan> alpha centauri was an ocean. in the second foundation series.
21:04:39 <Bike> i almost elided that .07 but then i remembered that was over ten times the actual population
21:04:42 <AndoDaan> people there wanted to turn themselves into dolphins.
21:04:52 <Bike> weren't those not by asimov
21:05:05 <AndoDaan> the third series wasn't, but the second was.
21:05:20 <Bike> anyone remember that short story "Tomorrow and Tomorrow and Tomorrow" by vonnegut, it fucked me up
21:05:21 <AndoDaan> greg bear, and two other wrote the third.
21:05:30 <Bike> overpopulation is kind of a dogwhistle but whatever
21:05:33 <Vorpal> <Bike> anyway if every person on earth got 6 m² we could fit 86 trillion peeps <-- don't forget it takes more than an apartment to sustain a person. You need to produce food and so on too
21:05:47 <Bike> uh dude scroll up we already decided everyone runs shit farms
21:06:21 <AndoDaan> not bad farms, but literal shit farms? would that work? do we have the technology
21:06:32 <Bike> i decided that, and you're within seven meters of me, so we're pretty much the same
21:06:41 <Bike> AndoDaan: like, using the shit as fertilizer. totally sensible
21:06:53 <elliott> I guess you could do something below the housing units?
21:07:07 <elliott> just poop directly into the endless vast expanse of the underground shit farm
21:07:11 <Bike> let's try this with volume now
21:07:16 <elliott> why am I participating in this
21:07:19 <Bike> how much is 6 m³? i don't even know
21:07:21 <fizzie> elliott: That certainly sounds better than on top.
21:07:41 <elliott> this channel is an underground shit farm
21:07:42 <Bike> 8 m³ is a 2×2×2 block, right
21:07:42 <AndoDaan> the human centipede on a planetwide scale...
21:07:59 <Bike> look have you ever been to a farm irl, they are disgusting, that's just how it works
21:08:02 <fizzie> Two square metres of area in a reasonable-height room is 6 cubic metres.
21:08:17 <Bike> everything you eat is regurgitated fixed nitrogen mother fucker
21:08:57 <Bike> okay, if everyone gets a 6 m³ block we can fit 1.805 × 10²⁰ people in the earth's volume. i ahve solved overpopulation.
21:09:01 <elliott> are we just going to invent the matrix here
21:09:23 <Vorpal> Bike, in the earth volume. Right, good luck with that
21:09:43 <Vorpal> You should count the volume of a shell around earth, up to a reasonable height
21:09:46 <elliott> what the fuck answer was I expecting
21:09:50 <Bike> Vorpal: yes this is clearly the only difficult proposal so far
21:09:55 <elliott> "can we fit more than 2^80 things anywhere in the universe"
21:09:59 <Bike> but i believe we can do it
21:10:38 <Vorpal> elliott, if so, there isn't an x86 extended floating point value for everyone?
21:11:17 <elliott> wait, is it 10^80, not 2^80
21:11:26 <elliott> what's the number for the observable universe again
21:11:28 <Vorpal> Oh okay, yeah that is bigger
21:11:44 <Vorpal> elliott, number of protons?
21:11:56 <fizzie> What the. If I type in "2^80 bytes" in Google, the result is "1.20892582 yottabytes". These are some sort of decimal-based byte counts.
21:12:07 <elliott> number of planck volumes? :p
21:12:12 <coppro> fizzie: that's correct
21:12:15 <elliott> fizzie: yeah, google use those now
21:12:46 <elliott> ubuntu and OS X and maybe windows also use decimal for showing file sizes now
21:12:49 <fizzie> Hmm. It sounds more silly than kibi.
21:12:52 <elliott> somehow SI prefixes are spontaneously winning
21:13:04 <coppro> they're winning because consistency is king
21:13:13 <elliott> coppro: they still overload it for RAM though
21:13:35 <coppro> that's not in the manufacturers' best interest :P
21:13:36 <fizzie> Apparently exabyte -> exbibyte, not ebibyte.
21:13:54 -!- Phantom_Hoover has joined.
21:14:04 <elliott> https://physics.stackexchange.com/questions/4118/how-many-bytes-can-the-observable-universe-store alright
21:14:11 <Vorpal> coppro, it doesn't make sense to not use power of 2 for ram, due to how it is constructed
21:14:43 <elliott> any number bigger than that you can give up on
21:15:12 <elliott> Vorpal: it doesn't make sense to not use powers of 2 for SSDs
21:15:27 <elliott> ...and indeed SSDs are often sold with binary prefixes, I think, sigh
21:15:59 <Vorpal> elliott, There is the issue that some space may be reserved though there
21:16:02 <Vorpal> elliott, and generally is
21:16:17 <Vorpal> Internal data structures, overprovisioning, and more
21:16:24 <elliott> yeah, but I mean you buy a 256 GB SSD, it's actually 256 GiB and also you don't get all of that
21:16:35 <elliott> you buy an 80 GB SSD, maybe it's actually something close to 80 GB, no i, who knows
21:16:55 <fizzie> My SSD reports itself as having 1000215216 sectors of 512 bytes.
21:17:03 <Vorpal> elliott, well, we will see what my 512 GB SSD that I ordered yesterday will be
21:17:28 <elliott> fizzie: but it probably doesn't actually deal with 512-byte sectors :p
21:18:48 <Vorpal> elliott, what fs should I use on an SSD these days?
21:19:03 <Vorpal> elliott, I will install Ubuntu LTS on it (14.04 atm I believe?)
21:19:29 <elliott> tools are mostly okay / getting better
21:19:40 <elliott> actual filesystem shouldn't, like, lose your data I don't think, but you do backups, right?
21:19:53 <elliott> if you're more boring you can just do ext4.
21:19:55 <Vorpal> But it is still annoying when things break
21:20:10 <elliott> or you could use something exciting and obscure like nilfs
21:20:14 <fizzie> People on a neighboring channel have still been having trouble with btrfs, but they're testing the bleeding-edge btrfs code.
21:20:17 <Vorpal> elliott, I heard good things about f2fs iirc
21:20:22 <elliott> or maybe go all the way to ZFS?!?!?!
21:20:26 <fizzie> Presumably what ends up in "stable" software is different.
21:20:38 <elliott> f2fs is for, like, SD card type things more I think
21:21:15 <Vorpal> elliott, hm made by samsung, and my SSD is a samsung one
21:21:29 <elliott> Vorpal: anyway, use a partitioning tool that will align properly like gdisk but who really cares, blah blah blah, SSDs are boring nowadays
21:21:44 <elliott> yeah but I think f2fs comes out of like, their phones.
21:21:56 <elliott> maybe it's great for SSDs, I don't know.
21:22:05 <Vorpal> phoronix tests I guess
21:22:11 <fizzie> "Partitions will be aligned on 2048-sector boundaries" makes one wonder if that's just "let's use some giant power of two, that's surely enough for everyone".
21:22:11 <elliott> btrfs has SSD-specific knowledge iirc
21:22:24 <Vorpal> elliott, I wonder how this will work with dm-crypt
21:22:32 <fizzie> I remember reading about nilfs several years back in the context of SSDs.
21:22:36 <elliott> you set up luks, put btrfs on it
21:22:44 <elliott> I think the luks stuff will get the alignment right by default nowadays
21:22:52 <elliott> btrfs is getting native encryption support at some point I think?
21:22:56 <Vorpal> elliott, I mean, that makes the data uncompressible, which iirc causes issues with SSDs
21:23:09 <elliott> I only know of SanDisks doing that by default?
21:23:18 <Vorpal> I think the sandforce controllers do it
21:23:24 <elliott> really you don't need kid gloves with SSDs these days.
21:23:31 <elliott> you can just do whatever and it's fine.
21:23:44 <Vorpal> Or should I just use the built in encryption in the SSD? Do I even trust that?
21:24:04 <Vorpal> Probably shouldn't use it at all even
21:27:05 <fizzie> SMART report on my system SSD says "Remaining_Lifetime_Percentage" has a value of 29.
21:27:15 <fizzie> Wonder what that's based on.
21:27:29 <elliott> its internal supply of human blood
21:27:53 <fizzie> It does have 33019 Power_On_Hours, so it's not exactly new.
21:30:19 <fizzie> Max_PE_Count_Spec 10000, Average_Erase_Count 7176; given that 1-7176/10000 is close to 29%, it's probably that.
21:31:32 <fizzie> Rounds the other way, though.
21:33:07 <Vorpal> fizzie, time to consider a new drive soon then
21:33:18 <Vorpal> The drive I'm getting have 10 year warranty
21:33:23 <Vorpal> So that is good at least
21:36:05 <elliott> testing shows SSDs survive a lot longer than they say they'll do, IIRC
21:36:26 <Vorpal> elliott, which is even better
21:38:41 <Vorpal> elliott, anyway, that just means they haven't figured out how to reliably make it fail after a specific amount of time yet :P
21:50:09 -!- oerjan has joined.
21:51:20 <fizzie> "Notice: Undefined variable: node in _watcher_node_type_enabled() (line 2840 of /home/joe/staging/beta/sites/all/modules/watcher/watcher.module)" looks very promising
21:51:36 <fizzie> I guess the site's built by some Joe.
21:53:58 <fizzie> I had that regular spinning-disk disk fail two weeks after the three-year warranty period, which shows they've honed those down to science.
22:02:00 <lambdabot> int-e said 11h 19m 7s ago: Oops, your hello hello world solution is much closer to my "local optimum" than I expected; apparently I had to rewrite the program in order to realize that the shared "world" string could be picked up from the final result list (having only one list helped). I had only tried a:b=["world","hello",a++"!"], resulting in
22:02:38 <oerjan> @tell int-e i had w:r=["world","hello",w++"!"] in a previous version.
22:02:39 <int-e> oerjan: oh you took on the horrible text formatting problem
22:02:57 <Vorpal> fizzie, which is why I got a hdd with 5 year warranty last time
22:02:58 <int-e> (euclidean distance ;-) )
22:04:36 <Vorpal> fizzie, also an enterprise disk, since that is made for 24/7 operation. And surprisingly it was pretty much the same price as a comparable non-enterprise hdd.
22:04:38 <oerjan> int-e: yep. i surely thought importing something would help, but my current best version has no imports and beats the one using Numeric by 1 char. (Text.Printf _should_ have won except for stupid lack of defaulting to Double.)
22:04:39 <int-e> oerjan: so what was your 85 characters version?
22:04:47 -!- ais523 has joined.
22:06:10 <AndoDaan> int-e: do you mean the rounding off stuff of Euclidian norm?
22:06:36 <int-e> AndoDaan: rounding, omitting trailing zeros, etc.
22:07:10 <ais523> I have a great esolanging announcement
22:07:16 <ais523> I have solved a problem which has been open since 1996
22:07:20 <AndoDaan> and the funny thing is... i wanted to use something in burlesque that would have helped just that.
22:07:55 <oerjan> by my estimate of your age i take it you didn't create the problem.
22:07:56 <AndoDaan> or i mean, which open problem.
22:08:45 <ais523> (((((#65535$#65535)~((V32((?32((?32(.4$.2)~(#0$#65535))$.1)~(#0$#65535))$(?32((((V32((&32(.4$.2)~(#0$#65535))$.9)~(#0$#65535))$#0)~(#32767$#1))$.2)~(#0$#65535)))~(#0$#65535))$#65535))$.4)~(#0$#65535))$.9) <- '"?.1$.2"~"#0$#65535"'$'"&.1$.2"~"#0$#65535"'
22:08:54 <ais523> how to add two numbers in a single INTERCAL expression
22:09:12 <ais523> err, wait, that's a mix of two different syntaxes
22:09:20 * Bike takes back esoaward
22:09:22 <AndoDaan> it's probably very impressive, bike.
22:09:37 <ais523> I had to write a new interpreter just to be able to run this code
22:09:37 <int-e> right ... () vs. '"
22:09:52 <ais523> INTERCAL numbers are numbers
22:09:56 <ais523> so it's just adding them numerically
22:10:07 <ais523> there isn't an inherent base, although all the operators you can use on them are bitwise
22:10:12 <oerjan> int-e: i seem not to have saved an 85 char version.
22:10:16 <AndoDaan> i've only read up on it a bit.
22:10:18 <ais523> AndoDaan: INTERCAL onespots are like C shorts
22:10:24 <ais523> it's not a functional language
22:10:49 <ais523> DO :2 <- :1/"'"'#65535$#65535'~'"'?"'"'V"'&.4$.2'~'#0$#65535'"$.9'~'#0$#65535'"$#0'~'#32767$#1'"$.2'~'#0$#65535'"$#65535'"$.4'~'#0$#65535'"$.9
22:10:50 <ais523> DO :1 <- '"?.1$.2"~"#0$#65535"'$'"&.1$.2"~"#0$#65535"'
22:11:01 <MDude> I don't think adding would depend that much on base used?
22:11:03 <ais523> that's it in proper INTERCAL syntax, split out into three lines for clarity and portability
22:11:17 <AndoDaan> of course i'm confusing unlambda with intercal now. sorry.
22:11:20 <oerjan> int-e: it was much more similar to my final one than to your "local optimum", though.
22:12:40 <int-e> oerjan: words"world hello world!" looked so nice, I kept putting it back :)
22:13:58 <AndoDaan> well, ais523, let me say congratulations. I have no idea how hard the feat is, but i have no doubt it would be beyond me in this lifetime.
22:14:24 <int-e> In the end, the statistics pretty much convinced me that henkma's code didn't contain that string and used the [...w++"!"] trick instead.
22:14:25 <Sgeo> People pay hundreds of dollars for a Forth environment?
22:14:46 <fizzie> Vorpal: My current backup disk is nominally a "surveillance storage" disk, because the price was the same, and the warranty slightly longer (3 years vs. 2 years) than the most basic consumer devices, plus it said something about being suitable for an "always-on" operation.
22:14:54 <fizzie> Vorpal: (WD "Pruple" series.)
22:14:55 <ais523> AndoDaan: this all came about because I was trying to write a contract bridge AI
22:14:56 <Bike> people pay hundreds of dollars for bird nests made into food
22:15:26 <Vorpal> fizzie, yeah my desktop disks are WD Se disks
22:15:34 <Vorpal> fizzie, the alternative would have been WD Black
22:15:41 <AndoDaan> ais523: i actually read that article that... eric(i think) wrote, you're one of the foremost experts on intercal, right?
22:15:59 <MDude> Bird nests have a supply limit argument going for them, though.
22:16:02 <ais523> AndoDaan: yes, thus it's not surprising I ended up in this channel
22:16:03 <int-e> oerjan: oh and there's a new problem there, "Belgian Numbers".
22:16:08 <AndoDaan> wait, a bridge ai... in intercal???
22:16:13 <ais523> AndoDaan: no, in Prolog
22:16:21 <Vorpal> fizzie, my backup disks are not on all the time and are thus cheaper and slower external USB3 disks
22:16:45 <fizzie> Vorpal: Last I looked it was mostly about the colors (Blue, Green, Black, Red, Purple); I don't know what these Se, Re, Xe, Ae signify.
22:17:22 <AndoDaan> ais523: how could that possibly be related to adding number in that language.
22:17:32 <fizzie> (These desktop disks are now "Seagate Barracuda 7200.14"'s.)
22:17:36 <AndoDaan> sorry if i'm showing my profound ignorance.
22:18:21 <ais523> AndoDaan: well, what's the maximum number of points a bridge hand can be worth, on the normal point counting system? (that's 4 for an ace, 3 for a king, 2 for a queen, 1 for a jack, and 1 for every card beyond the fourth in a suit)
22:18:59 <AndoDaan> it's been a while since i've bridged.
22:19:03 <Vorpal> fizzie, Se, Re and Xe are enterprise disks. Not sure about Ae
22:19:14 <Vorpal> fizzie, and there is also the velicoraptor on the side
22:19:19 <ais523> if you can get the answer in less than about 5 minutes, you're doing better than my bridge AI was
22:20:17 <int-e> oh 4444333322221 = 37
22:20:31 <fizzie> Vorpal: Ae is apparently for "archive" use.
22:21:08 <Vorpal> fizzie, I think Xe is SAS only
22:21:10 <AndoDaan> okay, and intercal counts like that, somehow?
22:21:38 <fizzie> Vorpal: "Moving cold data to value-optimized archive media delivers significant TCO savings by freeing up expensive performance-critical storage system capacity." It's like they've designed their ad copy for buzzword bingo.
22:22:13 <ais523> AndoDaan: no, but trying to evaluate INTERCAL reverse assignments is a similar sort of optimization problem
22:22:36 <ais523> "find a hand that's worth 37 points" is pretty much the same sort of operation as "find a number which, when selected with itself, gives #5"
22:23:12 <int-e> ais523: the former has a solution :)
22:23:30 <oerjan> oh, henkma used the trick that 99l lexes as 99 + l. funny that popped into my mind earlier today...
22:23:32 <Vorpal> fizzie, Xe seems like DC velicoraptor basically hm
22:23:46 <int-e> oerjan: I did that too
22:24:00 <AndoDaan> you had an ai look for the expression.
22:24:15 <Vorpal> fizzie, I don't remember what Re is for
22:24:28 <Vorpal> fizzie, I remember figuring out that Se was basically DC black
22:24:37 <MDude> Roman numerals could work pretty well with scientific notation.
22:25:10 <int-e> oerjan: ok, henkma's and my code ended up almost identical anyway
22:25:48 <oerjan> heh indeed, and quite different from mine
22:26:23 <int-e> perhaps I should say "isomorphic"
22:26:31 <oerjan> they _are_ identical, except for naming and a switch between ; and newline
22:26:38 <int-e> or, alpha-equivalent
22:26:48 <int-e> (the ; doesn't really count)
22:27:18 <int-e> it's just that I have all my shinh haskell golf code in a single file and that's easier to manage when the code is all on one line.
22:27:46 <oerjan> indeed. i seem to have switched from ; to newlines after i found out how to count chars in a block in vim
22:27:55 <MDude> Alpha-equivalent would be a neat band band name.
22:28:31 <int-e> oerjan: I don't count. http://sprunge.us/hbfF
22:28:51 <int-e> oerjan: the --- thing is the best known solution, I put my own above if it's optimal :)
22:31:13 <oerjan> <AndoDaan> phew. <-- you mean DISAPPOINTING hth
22:31:15 <int-e> and so far I have not run into a problem that *needs* newlines.
22:31:41 <AndoDaan> i couldn't dare to be so hard.
22:32:04 <AndoDaan> i know my limitations, and what ais523, or even you guys do is beyond me, and impressive.
22:33:02 <int-e> oh well, oerjan wrote an unlambda interpreter in intercal
22:33:02 <AndoDaan> of course, i've only taken an interest in the nitty gritty of programming and such, these last few months.
22:33:15 <int-e> I guess from that perspective, a bridge AI looks at least doable.
22:35:57 <oerjan> int-e: i'm not that efficient. my Golf.hs file contains a lot of sometimes nested {- -}'s which confuse vim's syntax coloring no end.
22:38:05 <oerjan> int-e: to _need_ newlines you'd have something with two do blocks or the like in it, i think, so that you cannot put both at the end.
22:38:22 <int-e> oerjan: do and where blocks, right.
22:38:42 <oerjan> i haven't had a use for where or let yet, the seem too verbose compared to the alternatives.
22:39:09 <ais523> OK, this newsreader is ridiculous
22:39:23 <ais523> it has a drop-down menu to choose the Encoding header you want, with a choice of valid options
22:39:31 <ais523> however, the message itself is always sent in latin-1
22:39:35 <oerjan> i _did_ use a do block once, but then you beat me and i had to find another solution.
22:40:30 <int-e> oerjan: hmm, I do have *one* where so far, and I wouldn't know how to replace it without making that particular code longer.
22:41:58 <int-e> (I could use let...in... at the same cost)
22:42:05 <ais523> anyway, I just sent my program + documentation to alt.lang.intercal
22:42:32 <oerjan> int-e: is that code revealed yet? (or ever.)
22:44:24 <oerjan> it is possible one of my not-yet-revealed solutions _could_ give you a hint to improve that. then maybe not. :P
22:50:17 <int-e> > map length ["(\f->)$val","where f=val"]
22:50:36 -!- AndoDaan has quit.
22:51:09 <oerjan> did you just improve it yourself :)
22:51:20 <int-e> no. it's not applicable.
22:51:59 <oerjan> it's also _still_ longer than the hint you might get.
22:53:06 <int-e> we also both know about infix operators, which can also sometimes help in that context.
22:56:12 -!- ^v has quit (Quit: Leaving).
22:56:30 -!- ^v has joined.
22:56:38 <oerjan> yes, i haven't actually got my trick to be the _best_ option yet, alas.
22:56:54 <oerjan> but i think it's only a matter of time.
22:56:58 -!- ais523 has quit.
22:57:09 -!- ais523 has joined.
22:58:07 <int-e> I see what you mean. But it's still not applicable. :)
22:59:13 <int-e> a certain haskell 2010 novelty.
22:59:39 <oerjan> bah hinting too much again :P
23:00:50 <oerjan> the only reason i can see why it wouldn't be applicable is if you are using several guards that the where needs to scope over.
23:00:59 <int-e> nice one, I should find a use for it :)
23:01:10 <oerjan> except then a let ... in wouldn't work?
23:02:20 <oerjan> i suppose they could be structured completely differently.
23:02:35 <int-e> you're on the wrong track
23:03:20 <int-e> > let f|True=1;f|False=2 in f
23:03:38 <int-e> > let f|True=1|False=2 in f
23:04:05 <lambdabot> No instance for (GHC.Num.Num GHC.Types.Bool)
23:05:47 <int-e> (I guess I shouldn't show that particular line to a Haskell beginner, even with proper whitespace added)
23:06:22 <oerjan> > let f|True,True=1|False=2 in f
23:07:26 <oerjan> so i wasn't on the wrong track anyhow? :)
23:07:53 <int-e> > case () of _|True<-True->True
23:08:14 <int-e> > case () of _| True<-True,True->True
23:09:10 <int-e> > case () of _| True|True<-True,True->True -- alas
23:09:12 <lambdabot> <hint>:1:19: parse error on input ‘|’
23:09:50 <fizzie> Also! It was Coruscant (which, to be fair, I've heard to be Trantor-inspired) with the more ridiculous canonical population figure, of approximately one trillion.
23:09:52 <int-e> (I don't know what the semantics of that are supposed to be)
23:10:48 <oerjan> > case () of _| True,True<-True,True->True
23:10:54 -!- boily has joined.
23:12:47 <ais523> fizzie: that's only like 100 times the population density of the Earth
23:13:02 <ais523> I think that'd be achievable with the technology level of that universe
23:13:12 <ais523> especially given that planets are three-dimensional
23:13:29 <oerjan> the problem that always comes up is removing waste heat
23:13:57 <oerjan> as in, they need to be able to break laws of thermodynamics
23:14:06 <fizzie> Yes, that's the canonical thing. People have written oodles of text about how that's a problem, and also about how that's not a problem.
23:14:28 <ais523> I shouldn't be surprised that people have looked into whether this would be feasible
23:14:35 <ais523> I hadn't really considered it
23:14:58 <oerjan> Irregular Webcomic had comics referring to it
23:16:34 <fizzie> http://mqallen.com/2013/05/16/coruscant-heat-dissipation-and-basic-worldbuilding/ claims it's not a problem.
23:16:49 -!- AndoDaan has joined.
23:20:08 <fizzie> There are a number of places that claim it is, including, yes, IWC.
23:21:10 -!- bb010g has quit (Quit: Connection closed for inactivity).
23:21:40 <ais523> hmm, that article thinks it's not a problem if one trillion people live there
23:21:47 <ais523> however, it also estimates the population at one quintillion
23:22:15 <ais523> which would definitely cause heat dissipation problems
23:24:12 <fizzie> Some of the official novels mention the heat-to-space thing.
23:25:53 <elliott> all I want is to fill germany with fertiliser
23:26:27 <Bike> the fertilizer was in you all along, elliott
23:43:55 <oerjan> why is my solution to belgian numbers 3 chars longer than int-e's hmm
23:45:15 -!- ais523 has quit.
23:45:49 -!- ais523 has joined.
23:49:22 <Bike> probably twelve or so
23:49:55 <oerjan> it's occasionally claimed that it's not so hard unless you've had your brain ruined by other languages first.
23:49:58 <Bike> it's twelve, what more do you want from me
23:50:11 <Bike> that's an exact, quantitative measurement
23:50:11 <Taneb> AndoDaan, if you go into it thinking it's going to be hard, it's going to be hard. If you go into it thinking it's going to be easy, it might be easy
23:50:15 <AndoDaan> i know a few languages... a couple.
23:50:17 <Taneb> (I found it pretty easy)
23:50:25 <oerjan> AndoDaan: then you're DOOMED hth
23:50:41 <Taneb> (if you can grasp programming without mutability you'll probably be fine)
23:50:41 <oerjan> Taneb: but you only knew Piet beforehand, no?
23:50:52 <oerjan> so it was actually a step _down_
23:51:00 <Taneb> oerjan, Piet, a little VB.Net, JavaScript, PHP, Python
23:51:12 <Bike> don't forget snobol
23:51:23 <Bike> Snobol's about 18 hard to learn, if you need a comparison
23:51:25 <oerjan> ok let's say that it was the Piet that saved your brain. like unlambda mine.
23:51:50 <Taneb> I actually broke my laptop writing very bad Python trying to solve a Project Euler problem
23:52:05 <Taneb> Well, it started thrashing and I sort of messed up stopping then recovering
23:52:47 <Taneb> I am now a better programmer than I used to be
23:52:54 <int-e> hey I started with some Basic, machine code, Pascal, Assembly, Logo, Scheme, C ... with some scripting languages inbetween. lambda calculus, haskell.
23:52:59 <AndoDaan> it's good for creating prototype... languages, right? i was looking at the icfp competition and haskell does alright.
23:53:25 <AndoDaan> i'm so tired of Lua making my life difficult.
23:53:27 <Bike> when coupled with a parser written in something convenient like snobol, perhaps
23:53:39 <oerjan> AndoDaan: yes ... *swats Bike -----###
23:53:44 <Taneb> Could I join the asking a question queue
23:54:07 <int-e> AndoDaan: just don't expect it to be like the programming languages that you already know. you'll often have to learn new ways of solving old problems.
23:54:43 <Taneb> Could someone explain to me why only prime n make 2^n - 1 prime?
23:54:53 <Bike> it's been said that snobol is not so hard unless you've had your brain ruined by other languages first
23:55:01 <oerjan> Taneb: 2^(mn)-1 is divisible by 2^m-1
23:55:05 <int-e> Taneb: because 2^a-1 divides 2^(a*b)-1
23:55:20 <boily> Taneb: because oerjan and int-e said so.
23:55:55 <boily> AndoDaan: it is a good thing. it's very frustrating at times, but it gives you a rather pleasing high when you can make it work with clean mathematical principles.
23:56:24 <int-e> Taneb: it's a special case of the fact that k-1 divides k^n-1 for all k>1 and n>=0.
23:56:33 <ais523> also, I have decided that Prolog is an esolang
23:56:33 <Taneb> int-e, why does that hold?
23:56:44 <Taneb> ais523, sounds legit
23:56:48 <oerjan> Bike: cobol is 13 hard but only because your brain keeps falling asleep
23:56:58 <Bike> a legitimate concern!
23:56:59 <ais523> it's nothing like pretty much any other language, and it tends to have terrible library support
23:57:03 <boily> AndoDaan: if you haven't read it yet, you should peruse Learn You a Haskell for Great Good.
23:57:09 <ais523> (put it this way: I have to write my own maps and folds in Prolog)
23:57:33 <AndoDaan> i think that's where mroman got the title for his burlesque's tutorial
23:58:00 <AndoDaan> "Read Learn you a Burlesque for no good!"
23:58:05 <oerjan> Taneb: (k^n-1) = (k^(n-1)+k^(n-2)+...+1)*(k-1), proof by cancelling terms
23:58:11 <int-e> Taneb: prove it by induction. intuitively, if you multiply (k^(n-1)+...+k^2+k+1) by (k-1), you get k^n-k^(n-1)+k^(n-1)..-k+k-1, and most terms cancel.
23:58:18 <int-e> oerjan: stop reading my mind!
23:58:31 <Taneb> Can I pretend that is a standard result for my number theory assignment?
23:58:38 <int-e> (I guess there is only this standard explanation)
23:58:43 <Bike> i kind of want a copy of mathematics made difficult just so i can spout answers from it
23:59:05 <int-e> Taneb: of course I'm the wrong person to ask :P
23:59:14 <Bike> let's see, you want to prove limit cycles exist. well, first, i'll need to tell you about types with holes
23:59:18 <oerjan> int-e: there's probably a fancier one that's very short and elegant
23:59:24 <int-e> Taneb: but it is a standard result.
23:59:46 <oerjan> indeed, k^n == 1^n (mod k-1), come to think of it