--- Log opened Tue Mar 24 00:00:25 2015 |
--- Day changed Tue Mar 24 2015 |
00:00 | <&Derakon> | Ho-ly shit. https://www.youtube.com/watch?v=xP5-iIeKXE8 |
00:00 | <&Derakon> | ^ The Game of Life. Implemented in the Game of Life. |
00:01 | <@gnolam> | o_O |
00:03 | <@gnolam> | Yo Dawg... |
00:03 | <@gnolam> | That is insane. |
00:10 | <~Vornicus> | Only shame is it didn't, like, loop |
00:18 | <&Derakon> | That's what I was thinking. |
00:18 | < EvilDarkLord> | You mean recurse? Those boxes look to be about 1500-1700 units wide, depending on how you count. So that's about 5 * 10 ** 12 points to simulate for scaling it up one level. |
00:19 | <&Derakon> | EDL: no, mostly just visually look identical between the first frame and the last. |
00:19 | < EvilDarkLord> | Bah, artists :P |
00:21 | < EvilDarkLord> | Oh, my bad. The bounding box is bigger than I thought, about 2000. |
00:49 | <&McMartin> | ... |
00:49 | | * McMartin finds a bug in his pruning code in his fastest Klotski solver, changes a single character, cuts his speed by two-thirds |
00:51 | <&Derakon> | Speed or runtime? |
00:51 | <&McMartin> | Er |
00:51 | <&McMartin> | Runtime, yes. |
00:51 | <&McMartin> | Tripled the speed. |
00:52 | <&Derakon> | Nice. |
00:52 | <&McMartin> | I'm really curious if the Rust implementation will beat this one. |
00:52 | <&McMartin> | (The current fastest solver I have is in Scheme) |
01:09 | | macdjord|slep is now known as macdjord |
01:18 | | Turaiel[Offline] is now known as Turaiel |
01:18 | <@Reiv> | What are you solving, and was the single character a mathematical operator by chance~ |
01:23 | <&Derakon> | Klotski is the general name for those sliding-tile puzzles. |
01:24 | <&Derakon> | Like where you have a 4x4 grid with one missing, and you have to arrange them to make a picture. |
01:29 | <&McMartin> | Not those, the other sliding tile puzzles |
01:29 | <&McMartin> | Very specifically, this one: http://en.wikipedia.org/wiki/Klotski#/media/File:Bricks-Forget-Me-Not-small.png |
01:30 | <&McMartin> | Anyway, I had an error in my hash function that was used to decide if it had seen a position before; if two positions are identical except that two bricks of identical shape are transposed, you've seen it before. |
01:30 | <&McMartin> | And one of the blocks was mistagged as uniquely shaped. |
01:30 | <&Derakon> | Heh. |
01:30 | <&Derakon> | Yeah, that would help your pruning function out rather significantly. |
01:31 | <&McMartin> | (Without that hash function the problem is intractible; with it, the solution is reachable in seconds) |
01:32 | <&McMartin> | And yeah, the total number of positions considered dropped from 93,000 or so down to 24,000 or so. |
01:33 | <@Reiv> | Oh god, *that* game |
01:33 | <@Reiv> | I hated that game so very much |
01:33 | <@Reiv> | ... I played the hell out of it, but I still loathed it entirely~ |
01:33 | <&McMartin> | That's why I built a robot to play it for me~ |
01:33 | <@Reiv> | How is it intractible without a hash? |
01:33 | <&McMartin> | And it turns out to be interesting as a programming-language shootout problem |
01:33 | <@Reiv> | And how do you build a hash to store shapes so? |
01:34 | <&McMartin> | It's intractible without a hash because instead of considering under 100,000 positions the state space you are searching soars into the hundreds of billions |
01:35 | <@Reiv> | That does sound impressive. |
01:35 | <&McMartin> | "How do you build a hash to store shapes in" is one of my usual interview questions, so I won't spoil that on a logged channel >_> |
01:35 | <@Reiv> | Well, I guess I'm glad I've never had to go to one of your interviews ;_; |
01:35 | <&McMartin> | (But generically, "the same way you would any other composite piece of data") |
01:35 | <@Reiv> | ... oh, like /that/ |
01:35 | <@Reiv> | OK I can comprehend that a little easier |
01:36 | <&Derakon> | Oh, McM, there exists the possibility that the company I'll be starting will need to hire employees. I have, uh, never interviewed a prospective employee before. |
01:36 | <@Reiv> | I was coming up with huge and impressively convoluted design problems |
01:36 | <&Derakon> | So keep those questions handy~ |
01:37 | <&McMartin> | I'm not very good at this either, really~ |
01:38 | <&Derakon> | You have infinitely more experience than I have. |
01:38 | <@Reiv> | Literally! |
01:39 | <&McMartin> | A lot also depends on how senior they are, etc |
01:39 | <&McMartin> | Phone screens will scrub out a lot of contenders, very very fast |
01:39 | <&McMartin> | I will ask some CTO friends who have had to deal with this much more |
01:39 | <&McMartin> | But who are also very bitter |
01:39 | <&Derakon> | I suspect we will not be able to afford a third senior-level employee~ |
01:40 | <&McMartin> | Step 1 is something insultingly easy to make sure they have, like, heard of for loops and function calls and stuff |
01:40 | <&Derakon> | In fact, given the scarcity of devs in this space (scientific software), I expect we'll be best off training someone who can learn. |
01:40 | <&McMartin> | This apparently wipes out more than half of all applicants |
01:40 | <&Derakon> | Not surprised. |
01:40 | < [R]> | What language? |
01:40 | <&Derakon> | Java/C++. |
01:40 | < [R]> | Also telecommuting an option? |
01:41 | <&McMartin> | ("Fizzbuzz" is the traditional test there but I would not suggest actually using that one) |
01:41 | <&Derakon> | Prrrrobably not really. |
01:41 | <&Derakon> | Also it's gonna be months out in any case. |
01:42 | | * [R] is willing to move for an Ops position, since he strongly suspects he will have to anyways. |
01:43 | | Xon [Xon@Nightstar-j72.ku7.252.119.IP] has quit [[NS] Quit: No Ping reply in 180 seconds.] |
01:45 | <@Reiv> | McMartin: I keep messing up fizzbuzz when given a whiteboard and a pen >_< |
01:45 | <@Reiv> | It is not how I think nor type |
01:45 | <@Reiv> | And of course, interviews are nervewracking to start with. |
01:47 | <&McMartin> | The goal is not to get the right answer, per se, on that one |
01:47 | <&McMartin> | The goal is to prove that you are the person described on the resume and not some random dude off the street |
01:48 | | Xon [Xon@Nightstar-j72.ku7.252.119.IP] has joined #code |
01:49 | <&Derakon> | There are an impressively large number of random dudes off the street who apply for high-skill positions with made-up resumes. |
01:49 | <@Reiv> | So if you start churning out for(int i, i++, i = 100) if i%15 print fizzbuzz ELSEIF i%3 print fizz ELSEIF i%5 print buzz end or some such |
01:49 | <@Reiv> | It is acceptable even if it's not terribly clean or whatever |
01:50 | <@Reiv> | (I am deliberately using an example you could trivially look up just so we're all on the same page) |
01:50 | <&Derakon> | It's not about the answer you give, really, it's about your explanation of it. |
01:50 | <@Reiv> | You have to explain it? |
01:50 | <&Derakon> | If you just spit out some code with no comment then I'd assume you memorized that question. |
01:50 | <@Reiv> | Ah, right |
02:01 | <~Vornicus> | wait you're starting a company |
02:06 | <@Reiv> | This is his big goal - to go big or go home |
02:07 | <@Reiv> | Because his funding runs out in a number of months, so the goal is that they set up a vaugely patreon-style company at the time for the equipment when they do. |
02:07 | <&Derakon> | Something like that, yeah. |
02:07 | <&Derakon> | Our project is currently funded by a grant from the NIH. |
02:08 | <&Derakon> | But we aren't "innovative" enough for them any more, never mind that they get like a 20:1 return on investment from all the other labs they fund who save money by being able to continue using microscopes that the commercial companies don't support. |
02:08 | <@Reiv> | That sounds like someone messed up on the funding spin, mostly |
02:08 | <&Derakon> | So the grant runs out September/October-ish, and we hope to be self-sustaining at that point. |
02:08 | <&Derakon> | Well, it's more that America has gotten ridiculously myopic when it comes to funding the sciences. |
02:09 | <@Reiv> | It sounds like someone got given a new spiel: Fund the innovative stuff, not the boring bits. Which leads you to that lovely spot in between where you're no longer cutting edge but /not yet/ mature and commercially funded. |
02:09 | <&Derakon> | We're perfectly happy to spend >$100 million per fighter plane...hell, for the cost of one Tomahawk missile you could fund our entire project for a year and a half or more. |
02:09 | <@Reiv> | ssssh, that's military and doesn't count |
02:10 | <&Derakon> | But meanwhile, universities are getting starved. |
02:10 | <&Derakon> | The cynic in me (a.k.a. McMartin~) would say this is an intentional attempt to freeze out the intelligentsia so they stop interfering with industry with their "wah wah global warming" and the like. |
02:10 | <@Reiv> | (That plane does not cost 100 million dollars. Overly aggressive outsourcing in the name of 'saving money' costs 100 milion dollars, yet people mock NASA for the same problem.) |
02:11 | <@Reiv> | Nah, it's less malicious than that and far more beurocratic |
02:11 | <&Derakon> | Okay, now you're doing it on purpose. :p |
02:11 | <@Reiv> | Military funding is popular because it keeps factories running in the U.S. |
02:11 | <@Reiv> | ... I am? |
02:11 | <&Derakon> | (Bureau) |
02:11 | <@Reiv> | Oh |
02:11 | <@Reiv> | No, I legit have no idea how to spell it even if it's right in front of me |
02:12 | <&McMartin> | Yeah, I can't take the blame for this one, Derakon. I spent five-plus years in academia duing the "MONEY THIS WAY PLOX" dance |
02:12 | <@Reiv> | I am dyslexic, and it's one of the Magic Words I have never yet seared into my brain, even with repitition. |
02:12 | <&Derakon> | Ahh. |
02:12 | <&Derakon> | Sorry. |
02:12 | <&McMartin> | doing, even |
02:13 | <&McMartin> | I need foods |
02:13 | <@Reiv> | Derakon: Naw, it's OK. I before E is a problem too. |
02:13 | <@Reiv> | Not helped that my nickname and indeed real name both invert the order due to scottishness >_> |
02:20 | <~Vornicus> | morre words get it the other way around than don't |
02:24 | <@macdjord> | Vornicus: Not it you add the 'Except when sounding like "a" in "neighbour" or "weigh" ' part~ |
02:25 | <~Vornicus> | Science |
02:28 | <~Vornicus> | also atheist |
02:29 | | * Vornicus checks, actually |
02:31 | <~Vornicus> | 4001 words with ie, 2663 with ei, in my computer's spelling list. More than I can evaluate for pronunciation, but lots and lots of the ei's I can tell actually have a syllable break there |
02:33 | <~Vornicus> | magpieish |
02:36 | <@macdjord> | Vornicus: I assume that's after eliminating those following 'c'? |
02:37 | <~Vornicus> | No, I haven't tried that. The number of words is too big, I'm finding myself a word list with less, uh, arcana in it like kotschubeite |
02:37 | <~Vornicus> | like this list of the 5000 most common words in the simpsons |
02:39 | <@Reiv> | That's a cute list |
02:39 | <~Vornicus> | slightly |
02:42 | <@macdjord> | ... |
02:42 | | * macdjord goes off to reread Up-Goer Five |
02:43 | <~Vornicus> | for "ei": three variations on "neighbor", three on "weigh", "their", "being", two variations on "eight", "either", "seeing", "weird", "neither", "foreign", two variations on "receive", "ceiling", "Einstein", "reindeer", "sleigh" |
02:44 | <&McMartin> | The i/e rules do not apply when they're separately pronounced vowels |
02:45 | <&McMartin> | ... or when they're loan words from German |
02:46 | <~Vornicus> | so that's ay ay eh e-i ay e-i ee ee ih see seah iy ay ay |
02:57 | <@Reiv> | McMartin: Or when they're from celtic, in which ei is a seperate phenome to ie~ |
02:57 | <@Reiv> | er, in which ei is seperate to ea, rather |
02:58 | <@Reiv> | (Reaver is english botching of Reiver, because in english they are roughly equivalent; they're not in celtic [and yes this means I mess up my own name, oh well]) |
03:01 | <~Vornicus> | poor reiv |
03:01 | <&McMartin> | Where does "reeve" fit in here~ |
03:01 | <@Reiv> | Different again, and nominally different in english to ei/ea anyway |
03:06 | | * McMartin fires up Megaforge again, maybe to get stuff into pushable shape. |
03:31 | | Xires is now known as ^Xires |
03:34 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
03:41 | | AverageJoe [evil1@Nightstar-pqipp9.sd.cox.net] has joined #code |
03:55 | | Derakon [chriswei@Nightstar-5fqf0m.ca.comcast.net] has quit [Connection closed] |
03:55 | | Derakon [chriswei@Nightstar-5fqf0m.ca.comcast.net] has joined #code |
03:55 | | mode/#code [+ao Derakon Derakon] by ChanServ |
04:06 | | Turaiel is now known as Turaiel[Offline] |
04:24 | | Derakon is now known as Derakon[AFK] |
04:43 | | Deckmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
04:54 | | Orthia [orthianz@Nightstar-o3pulk.callplus.net.nz] has quit [Ping timeout: 121 seconds] |
04:58 | | Orthia [orthianz@Nightstar-ee5.6b3.224.119.IP] has joined #code |
04:58 | | mode/#code [+o Orthia] by ChanServ |
04:58 | | AverageJoe [evil1@Nightstar-pqipp9.sd.cox.net] has quit [[NS] Quit: Leaving] |
05:55 | <&McMartin> | woo, progress, but github hates me so meh, pushing later |
06:09 | | AverageJoe [evil1@Nightstar-pqipp9.sd.cox.net] has joined #code |
06:35 | | Kindamoody[zZz] is now known as Kindamoody |
07:18 | | celticminstrel [celticminst@Nightstar-gmujup.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
08:10 | | AverageJoe [evil1@Nightstar-pqipp9.sd.cox.net] has quit [[NS] Quit: Leaving] |
08:27 | | macdjord is now known as macdjord|slep |
08:31 | | * abudhabi scratches head. |
08:32 | < abudhabi> | In Pale Moon (FF clone), I get a JS syntax error on line 1. |
08:32 | < abudhabi> | In Chrome, I don't get it. |
08:32 | < abudhabi> | Both have the script executing properly. |
08:36 | < abudhabi> | Hmm. Is it trying to parse the value I get from the AJAX request? |
08:48 | <@Shiz> | unlikely |
08:48 | <@Shiz> | is the site public? |
08:48 | <@Shiz> | if so i can test on my osx nightly |
08:49 | < abudhabi> | It's not. |
08:50 | < abudhabi> | I should very well hope this unfinished thing isn't public. :P |
09:01 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [Connection closed] |
09:30 | | Deckmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
09:40 | | Kindamoody is now known as Kindamoody|afk |
09:54 | | Deckmate is now known as Checkmate |
09:54 | | mode/#code [+o Checkmate] by ChanServ |
10:49 | | ed [im@s.ocv.me] has joined #code |
10:55 | < ed> | Hello! I've been wanting to make a voice-controlled media player for some time, where you can say something like "Select by album" followed by an album title. Unfortunately, I have no experience with speech recognition yet. From what I can tell, there are two leading projects using different approaches/algorithms: Kaldi (DMM/HMM) and Sphinx (GMM/HMM). Seeing how I will have a fairly narrow |
10:55 | < ed> | vocabulary (at most a few hundred album and artist names), would either of the two be particularly suited for my project? |
10:56 | < ed> | I intend to run the application either on an android device or another low-powered machine, either a raspberry or maybe a beagleboard. Thanks for any advice you may have. |
10:57 | < [R]> | You could always test it yourself. |
10:58 | < ed> | well yeah definitely, but I was just curious whether either of the two would be particularly suited for matching against a list of accepted phrases |
11:05 | <@TheWatcher> | Or you could do the heavy-lifting of the speech translation using something like Google's Speech to Text API, and then parse and process the text. |
11:06 | < ed> | That has crossed my mind, but I would prefer an offline solution, as I'd prefer not having to rely on a network connection being present (this is intended for use in a car) |
11:17 | <@Tarinaky> | Basically your two options are: use Google speech recognition or... Start applying for research grant money and give up any dreams of ever seeing an actual, useful, application making you any money. |
11:19 | <@Tarinaky> | You don't count as having a 'small vocabulary' because you want to accept any arbitrary album title. |
11:20 | <@Tarinaky> | A small vocabulary would be a bunch of hard coded words you can grind down to some coefficients in a matlab model. |
11:20 | < ed> | I was planning to restrict the vocabulary to whatever mp3 files are in the local music library of the device, so it would be fairly small in that regard |
11:20 | < ed> | but yeah I see what you mean |
11:21 | <@Tarinaky> | You don't have that information at compile time. |
11:22 | <@Tarinaky> | That said, play/pause/stop/skip... are doable. |
11:23 | <@Tarinaky> | But I'm not sure you're going to be solving the actual problem you have in a cost effective manner. |
11:23 | < ed> | as for album and artist names, I was hoping one of the speech recognition libraries I mentioned would have an offline database of how different letter combinations are likely to be pronounced, much like how most text to speech engines can usually accurately pronounce words that are not in the database |
11:24 | < ed> | and it would be further assisted by having a list of accepted phrases to match against |
11:25 | <@Tarinaky> | I'm not sure how Google's engine actually works. All I know is that it's a serious bsns research project with like... a whole bunch of smart people working on it and an end product that isn't really mature yet. |
11:25 | <@Tarinaky> | Which should give you an idea of the manhours needed for the project. |
11:26 | <@Tarinaky> | Also, I think the cloud nature implies that it probably requires more processing power than an Android platform can deliver. |
11:27 | < ed> | that was my main concern until now, heh |
11:29 | <@Tarinaky> | What's the actual problem you're trying to solve though? |
11:30 | <@Tarinaky> | I thought modern cars put controls for the radio on or near the steering wheel now? |
11:31 | < ed> | I would like to be able to name an album that I would like to listen to, without having to scroll through a huge list of available ones |
11:31 | <@Tarinaky> | You don't need a computer to do that. |
11:32 | <@Tarinaky> | I could tell you I'd like to listen to Kasabian - Kasabian despite being located in a different building to my music collection. |
11:32 | <@Tarinaky> | What's the /actual/ problem you want to solve? |
11:33 | < ed> | basically, being able to navigate my local music library without taking my attention off the road |
11:33 | <@TheWatcher> | Voice controlled music player, then |
11:33 | < ed> | this is purely a personal project, I don't care if other people find it useful or not |
11:36 | | * Tarinaky shrugs. |
11:37 | <@Tarinaky> | Put your music collection in shuffle and use a skip button as a bogo sort? |
11:37 | <@Shiz> | lol |
11:37 | <@Tarinaky> | Or bogo search I guess. |
11:38 | <@Tarinaky> | But in all seriousness, good luck. |
11:39 | < ed> | thanks, I'll report back if I ever get anywhere with it :> |
12:23 | <@Wizard> | Hey ed |
13:06 | <&ToxicFrog> | Tarinaky: that depends on skip respecting shuffle -- it doesn't in my car. |
13:07 | <&ToxicFrog> | Tarinaky, ed: as far as power goes -- Google voice recognition by default runs on a cluster somewhere, and uses additional contextual information (like physical location) and access to the Knowledge Graph for recognition. |
13:08 | <&ToxicFrog> | You can run it in offline mode; it's noticeably worse, but it does work. So it can be done. |
13:08 | <@Tarinaky> | Neat. |
13:08 | <&ToxicFrog> | It might even be possible to access the offline voice recognition library programatically, although it requires some up front setup from the user (offline VR needs to be explicitly enabled and needs to download a bunch of data files) |
13:10 | <&ToxicFrog> | Also, having a small vocabulary does actually help here even if it's not known at compile time -- any interpretation that doesn't appear in the library can be weighted 0. |
14:17 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
14:17 | | mode/#code [+o thalass] by ChanServ |
15:04 | | kourbou [holoirc@Nightstar-ptu.kfu.165.37.IP] has joined #code |
15:04 | | kourbou is now known as kourbou|bus |
15:08 | | thalass is now known as Thalass|afk |
15:08 | | kourbou [holoirc@Nightstar-ngl.ga3.162.37.IP] has joined #code |
15:08 | | kourbou [holoirc@Nightstar-ngl.ga3.162.37.IP] has quit [Connection closed] |
15:10 | | kourbou|bus [holoirc@Nightstar-ptu.kfu.165.37.IP] has quit [Ping timeout: 121 seconds] |
15:30 | <@Tarinaky> | http://www.reddit.com/r/talesfromtechsupport/comments/182tmd/its_like_having_a_g un_put_to_your_head/ |
15:30 | <@Tarinaky> | Prize winner for "Worst tech support gig" |
16:23 | | celticminstrel [celticminst@Nightstar-gmujup.dsl.bell.ca] has joined #code |
16:23 | | mode/#code [+o celticminstrel] by ChanServ |
16:25 | | macdjord|slep is now known as macdjord|wurk |
16:54 | <@Alek> | Taki: so many thanks. :D |
17:23 | | Derakon [chriswei@Nightstar-5fqf0m.ca.comcast.net] has joined #code |
17:23 | | mode/#code [+ao Derakon Derakon] by ChanServ |
17:24 | | * Derakon mutters at GCs that are unable to detect reference loops. |
17:24 | <&Derakon> | I know, I know, island-detecting GCs are expensive as hell. |
17:24 | <&Derakon> | But detecting and cleaning up reference loops is a pain in the ass. |
17:25 | <&Derakon> | Especially since subtle things can throw you off. |
17:25 | <&Derakon> | For example, I have a throwaway anonymous class that exists just to listen to an event and perform an action...and that anonymous class operates in a closure that has a reference to the image display window that's supposed to be GC'd... |
17:25 | <&Derakon> | So I have to detect and remove the event listeners when the window is destroyed. |
17:27 | | * Derakon ...s at the "workaround" on this page: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4380536 |
17:28 | <&ToxicFrog> | Er |
17:28 | <&ToxicFrog> | mark and sweep GCs are expensive as hell now? |
17:28 | <&Derakon> | Well, more expensive than reference-counting, aye? |
17:28 | <&ToxicFrog> | Like, yes, they're more expensive than refcounting, but they're also pretty much the standard these days |
17:29 | <&Derakon> | ...wait, y'know, I think I may be misremembering things here. |
17:30 | <&Derakon> | Java may actually use mark&sweep already. |
17:30 | <&Derakon> | And the problem is more that I have an extant object somewhere in the program state that is keeping a reference to the display window around. |
17:30 | <&Derakon> | Problem being that the program state is so bloody huge and image windows are so complicated that finding the perpetrator when examining the heap dump is kind of difficult. |
17:30 | <&Derakon> | </whine> |
17:33 | | Thalass|afk [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Ping timeout: 121 seconds] |
17:34 | <&McMartin> | 10:21 <&ToxicFrog> mark and sweep GCs are expensive as hell now? |
17:35 | <&McMartin> | Always have been, got worse once caching became a thing |
17:35 | <&McMartin> | (Since it systematically forces the system to thrash in a loop with billions of iterations) |
17:35 | <&McMartin> | That's why AFAIK Java's always used a generational collector. |
17:36 | <&McMartin> | Which reduces, in the end, to mark and sweep, but if you do that your program's performance has already been destroyed. |
17:37 | | * Derakon restarts the profiler, hits "Acquire" on the data collection dialog, waits 30s for the acquisition engine to spool up and generate two fake images so he can close the window they're in. |
17:39 | <&Derakon> | I kinda wish NetBeans' profiler could generate a reference graph so I could look at this graphically instead of descending through objects manually and hoping I find the "external" link. |
17:44 | <&Derakon> | Well, links. |
17:44 | <&Derakon> | Because there's a lot of them. |
17:45 | <&McMartin> | I want to get into messing with Android again, which apparently means I should become familiar with IntelliJ |
17:47 | | ^Xires is now known as Xires |
17:54 | <&ToxicFrog> | Next time I want to mess with Android I'm probably going to go full crazy and use the Chrome Apps For Android compiler, which takes JS as input |
17:54 | <&ToxicFrog> | And then write it in clojurescript |
17:54 | <&McMartin> | ... is there a reason to do that instead of directly targeting Dalvik with Clojure? |
17:55 | <&ToxicFrog> | Not really |
17:55 | <&ToxicFrog> | But it sounds like fun |
17:56 | <&McMartin> | Oh, right, going the full crazy |
17:56 | <&ToxicFrog> | Actually, no, there is a reason, and that reason is that for the kind of things I'm likely to do CAFA presents a much more pleasant API than native Android apps |
17:56 | <&McMartin> | The core Java language has changed a lot since I last was a true master of it |
17:57 | <&ToxicFrog> | Absent clojurescript I'd probably still opt to use CAFA and just write my things in javascript |
17:58 | | * McMartin nods |
17:58 | <&McMartin> | Megaforge is already in JS, so CAFA might be a fun fit for that |
17:58 | <&McMartin> | For all those places where I need to synthesize Mega Man passwords across the entire series on the go >_> |
17:59 | <&ToxicFrog> | Never know when you'll be caught in a strange place with nothing but an NES and a smartphone! |
18:00 | <&Derakon> | Oh, is that what Megaforge is? |
18:01 | <&ToxicFrog> | Also, this is CAFA: https://github.com/MobileChromeApps/mobile-chrome-apps |
18:01 | <&ToxicFrog> | I've only used the CADT parts, not the actually-package-your-thing-as-an-apk-for-release parts. |
18:02 | <&McMartin> | Derakon: Yeah, though in practice it's really a learn-to-javascript-interestingly thing. |
18:03 | | * Derakon nods. |
18:13 | | * Derakon adds a todo item to his list: "nuke the <foo> handles system from orbit". |
18:13 | <&Derakon> | API v1.4 has a ton of functions that interact with Foo objects by passing in a String handle to that object. |
18:13 | <&Derakon> | API v2.0 just gives you the Foo itself and tells you to go nuts. |
18:13 | <&Derakon> | So much cruft that can be deleted. |
18:18 | < [R]> | CAFA? |
18:18 | <&ToxicFrog> | Chrome Apps For Android, which is actually Chrome Apps For Mobile now, looks like |
18:19 | <&ToxicFrog> | Basically you write your thing as if it were a Chrome app (HTML UI, Javascript logic) and then it uses Cordova to wrap it in an apk or a ...whatever iOS uses. |
18:45 | <@celticminstrel> | If you mean file extension, it's ipa. |
18:49 | | Kindamoody|afk [Kindamoody@Nightstar-180u8i.tbcn.telia.com] has quit [Connection closed] |
18:50 | | Kindamoody|autojoin [Kindamoody@Nightstar-180u8i.tbcn.telia.com] has joined #code |
18:50 | | mode/#code [+o Kindamoody|autojoin] by ChanServ |
18:50 | | Kindamoody|autojoin is now known as Kindamoody |
18:54 | | Thalass|afk [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
19:11 | | Thalass|afk is now known as Thalass |
19:11 | | mode/#code [+o Thalass] by ChanServ |
19:11 | | * ToxicFrog fires up rebase to remove a bunch of commits with descriptions like "wtf" and "even more logging please kill me" |
19:11 | | * Thalass ponders password mmanagers. |
19:12 | <&ToxicFrog> | Thalass: what about them? |
19:12 | <@Thalass> | Whether they're worth it. I've never used one. |
19:14 | <&ToxicFrog> | IME, they are totally worth it. |
19:14 | <&ToxicFrog> | I use keepass, with the db synced to my various computers and phone. |
19:14 | <&ToxicFrog> | All my passwords are strong, all of them are unique, and I don't know what most of them are. |
19:15 | <&ToxicFrog> | When one of the sites I use inevitably gets hacked, I just need to change the password for that site, not everywhere. |
19:15 | <&ToxicFrog> | When I'm setting up a new account, I don't need to think of a password for it, I just push button. |
19:22 | | * Thalass nods |
19:23 | <@Thalass> | I might try it, then. |
19:23 | <&Derakon> | I generate passwords by applying a function to the site's URL. |
19:23 | <&Derakon> | Probably not as secure as a password manager, but on the other hand I do know all of my passwords. |
19:23 | <&Derakon> | And they're still unique. |
19:23 | <&ToxicFrog> | Derakon: yeah, that's what I used to do, except it doesn't scale |
19:23 | <&Derakon> | Howso? |
19:23 | <&ToxicFrog> | Because different sites have different password requirements, which means you need different tuning parameters to the function |
19:24 | <&ToxicFrog> | Which means you now need to remember which tuning parameters you used for each site |
19:24 | <&McMartin> | This is basically what pushed me to LastPass |
19:24 | <&ToxicFrog> | s/lastpass/keepass/ and ditto. |
19:24 | <&Derakon> | Ahh. |
19:24 | <&Derakon> | That has not usually been an issue for me. |
19:24 | <&Derakon> | There's a couple of outliers, but they're small enough that I can remember them. |
19:25 | <&McMartin> | (AIUI, lastpass, keepass, and 1pass are the big three) |
19:29 | <&ToxicFrog> | Lastpass stores your passwords offsite, which I don't particularly like. Don't know about onepass. |
19:31 | <@Thalass> | Hrm. There is a keepass2 and a keepassX in the software centre |
19:31 | <&McMartin> | Yeah, although I'm not actually sure if that increases the attack surface significantly |
19:35 | <&ToxicFrog> | Lastpass was in fact hacked a few years ago |
19:35 | <&ToxicFrog> | It at least increases it from "your stuff" to "your stuff + the password manager's servers", and the latter is a much more juicy target |
19:36 | <&ToxicFrog> | Thalass: Keepass2 is the official Mono-based release. KeepassX is a cross-platform C++ fork. |
19:37 | <&ToxicFrog> | There are minor differences in UI but they're format-compatible with each other. |
19:37 | <&ToxicFrog> | (unless it's a very old version of keepassx; support for kp2 databases was added in 2013) |
19:37 | <&ToxicFrog> | (*2012) |
19:40 | <&McMartin> | ToxicFrog: It was 1Password that was hacked, not LastPass, if memory serves |
19:41 | <&McMartin> | But yeah, my "most worrisome attack surface" is "something that can get access to the browser's memory" |
19:42 | <&McMartin> | (The decrypting passphrase never hits the wire in any of these) |
19:48 | <@Thalass> | Thanks guys |
19:48 | | * Thalass installs, has a play around |
20:05 | <@Reiv> | My problem with password managers: How cleanly do they work when I am, eg, at work? |
20:06 | <@Reiv> | The old "What do I do at a friends house" problem is one I would dearly love to see a trivial answer to |
20:06 | <&ToxicFrog> | Reiv: at work, I mount my home machine from there and open the password file directly |
20:06 | <&ToxicFrog> | On the run, I use my phone |
20:06 | <@Reiv> | And hand-type what they provide? |
20:07 | <@Reiv> | ToxicFrog: I 'open the password file directly' implies you have installation priveledges for the password manager at work, yes? |
20:09 | <&ToxicFrog> | Reiv: yes, although it can also be run portably if needed |
20:09 | <@Reiv> | Hmm, yeah, we don't have install privs |
20:09 | <@Reiv> | I have a ton of software, but cannot add to the collection ;_; |
20:09 | <&ToxicFrog> | You don't need to install but you do at least need to be able to run the exe |
20:09 | <@Reiv> | Nor can I configure Chrome, which is maddening |
20:09 | <&ToxicFrog> | And with the phone, yes, I just type it in by hand |
20:10 | <@Reiv> | (C'mon, let me re-open old tabs when I reboot ;_;) |
20:10 | <&ToxicFrog> | That said, the passwords I'm most likely to need -- the password for keepass itself, my user logins, Steam, and Google -- I have memorized. |
20:10 | <&ToxicFrog> | And those I have deliberately picked passwords that I can easily type. |
20:11 | | * gnolam cackles manically. |
20:11 | <@Reiv> | oh, you don't have to stick with randomised ones? OK. |
20:11 | <@Reiv> | That makes it more attractive, if it's handling the esoteric rather than the standard. |
20:11 | <@gnolam> | SUCK IT, Kubelka and Munk. |
20:12 | <&ToxicFrog> | Reiv: yeah, it has a random password generator (which is tunable -- by length, but also by what kinds of characters to include, and it has options for "exclude things hard to type on mobile" and "exclude things that look like each other" e.g. 1/l or O/0) |
20:12 | <&ToxicFrog> | But you can also just type in a password and tell it to remember. |
20:14 | <@Reiv> | aha |
20:25 | <@iospace> | Comment of the day: "spec says you have to write at least one month (whatEVER)" |
20:32 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code |
20:32 | | mode/#code [+o Vash] by ChanServ |
20:41 | | Thalass is now known as Thalass|games |
20:42 | | Thalass|games [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Connection closed] |
20:47 | | * Derakon mutters at NetBeans, has no clue where the external references to this giant glob of objects are. |
20:48 | <&Derakon> | This is the problem with attaching all of the controls and metadata displays for a dataset to the window the dataset is in; when there's a memory leak and you're trawling through the heap trying to figure out what's keeping a reference to the window open, there's a crapton of stuff that might somehow indirectly be leaking a reference, but there's no easy way to tell. |
21:17 | | kourbou|phone [holoirc@Nightstar-deqg8j.fbx.proxad.net] has joined #code |
21:18 | | kourbou|phone [holoirc@Nightstar-deqg8j.fbx.proxad.net] has quit [Connection closed] |
21:18 | | kourbou [holoirc@Nightstar-deqg8j.fbx.proxad.net] has joined #code |
21:33 | | kourbou is now known as kourbou|zzz |
21:38 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
21:38 | | mode/#code [+o thalass] by ChanServ |
21:41 | | * thalass idly ponders the viability of using the bittorrent format to coalesce data sent from a satellite and received by many ground stations. A master ground station could act like a leecher, with the slave stations acting like seeders. |
21:44 | <&McMartin> | Hrm. Isn't the satellite's downcasting bandwidth going to be the limiting factor? |
21:50 | | Reiver is now known as Orth |
21:52 | | kourbou|zzz [holoirc@Nightstar-deqg8j.fbx.proxad.net] has quit [Connection closed] |
21:55 | | Kindamoody is now known as Kindamoody[zZz] |
22:03 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
22:03 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
22:12 | <@Alek> | well... I dunno, but I thought satellites were able to broadcast simultaneously on hundreds of frequencies, and most ground stations could only receive one frequency at a time. so if you had a bunch of stations, each set to receive one of several frequencies, you could add it up for a higher throughput, no? |
22:13 | <@Alek> | or am I wrong somewhere? |
22:17 | <~Vornicus> | you can receive multiple frequencies on one antenna |
22:18 | <~Vornicus> | this is the basis of FM stereo and B&W-compatible color TV |
22:34 | | Derakon [chriswei@Nightstar-5fqf0m.ca.comcast.net] has quit [[NS] Quit: leaving] |
22:34 | <&ToxicFrog> | Vornicus: receiving multiple frequencies simultaneously is an entirely different sack of ferrets; this is what tuners are for. |
22:35 | <&ToxicFrog> | DSN dishes, for example, have a very broad frequency range but tune to fairly narrow ranges to collect incoming signals. |
22:37 | <~Vornicus> | I do mean at once. |
22:39 | <&ToxicFrog> | Examples? |
22:46 | <&ToxicFrog> | I mean, yes, FM receivers and the like tune to a narrow frequency band rather than a single frequency, but I thought that the only way to receive usefully over a broad frequency range was to make it equally bad at everything and very, very large |
22:46 | <~Vornicus> | FM stereo. the "mono" and "stereo" bands are actually in two different places |
22:47 | <~Vornicus> | or at least that's how I understand it |
22:59 | <@thalass> | This is specifically for a cubesat in orbit of the moon. It has pretty low bandwidth, but needs to transmit rather detailed images of the surface. So mulltiple groundstations are needed to improve reception. Random dropouts due to clouds, etc. |
23:00 | | Orthia [orthianz@Nightstar-ee5.6b3.224.119.IP] has quit [Ping timeout: 121 seconds] |
23:01 | <@thalass> | Initially having multiple ground stations was to increase gain, like the square kilometre array, but if they're placed around the world they'll need to syncronise over the intertoobs. It was just a brainfart, really. |
23:02 | <~Vornicus> | There was a thing, uh -- I think McM saw it or something? |
23:03 | <&ToxicFrog> | Vornicus: I'm not terribly good at analog stuff, but here's my understanding |
23:03 | <&McMartin> | thalass: well, a *continuous* transmission would occasionally have LOS issues, I suppose |
23:03 | <&McMartin> | So you could correlate that way |
23:03 | <&ToxicFrog> | The stereo information -- along with other stuff like the text channel -- is placed on "subcarriers", which are (relatively low-frequency, kHz range) additional carriers modulating the main signal |
23:04 | <&McMartin> | What TF describes is roughly how Composite Video signals also work when sent through an RF modulator |
23:04 | <&McMartin> | That said |
23:04 | <&McMartin> | I'm unclear on how FM works when presumably one tunes to a frequency |
23:05 | <&ToxicFrog> | The way this has been explained to me is that if you plotted the wave of one of these signals, it would be "fuzzy" |
23:05 | <&ToxicFrog> | Zoom in on that fuzz and it's another wave. That's the subcarrier and it's modulated to carry additional data. |
23:05 | <&ToxicFrog> | I have no idea if this is how it actually works or if it's lies-to-children |
23:06 | <&McMartin> | "In analog signal applications, the difference between the instantaneous and the base frequency of the carrier is directly proportional to the instantaneous value of the input-signal amplitude." |
23:06 | <&ToxicFrog> | McMartin: as a practical matter you tune to a frequency range; you have a nominal frequency tuned to and the SNR gradually increases as you get further away from it |
23:07 | <&McMartin> | What you describe would be how it works for an amplitude-modulated subcarrier |
23:07 | <&McMartin> | The thing is, with RF modulated composite, is that that happens "one level down" |
23:07 | <&McMartin> | You can't read the composite signal out of the modulated one directly; turn it back into a signal and it's a sum of three signals with different carrier waves |
23:07 | <@thalass> | When you tune to an FM radio frequency, your receiver's bandwidth is going to be ~15kHz either side of that frequency. That covers the transmission of audio using frequency modulation. (IIRC the frequency of the sound alters the carrier frequency accordingly. Frequency shift for volume and rate of frequency shift for frequency? Something like that. ) |
23:07 | <@thalass> | it's been a long time |
23:08 | <&McMartin> | Right |
23:08 | <&McMartin> | The part where I'm falling down is how you do it in analog, basically. |
23:08 | <&McMartin> | And apparently it's because All The Terms Cancel Out, is what I'm getting from this |
23:08 | <@thalass> | heh |
23:08 | <@thalass> | it's magic. |
23:08 | <@thalass> | That's how I explain it to pilots. |
23:09 | <&McMartin> | AM/FM - Actual Machines; Fucking Magic |
23:09 | <@thalass> | *snerk* |
23:09 | <&ToxicFrog> | Heh |
23:09 | | thalass is now known as Thalass|afk |
23:09 | <@Thalass|afk> | bed time for the brats. I may not survive. |
23:09 | <&ToxicFrog> | Most of my knowledge of radio comes from reading about the DSN, which is amplitude- and frequency-fixed for a given transmission and uses phase shift encoding for the actual payload |
23:15 | | abudhabi [abudhabi@Nightstar-7nkq9k.de] has quit [Operation timed out] |
23:19 | | abudhabi [abudhabi@Nightstar-7nkq9k.de] has joined #code |
23:22 | | Thalass|afk is now known as Thalass |
23:52 | | Derakon[AFK] is now known as Derakon |
--- Log closed Wed Mar 25 00:00:28 2015 |