« first day (2313 days earlier)      last day (2697 days later) » 

12:06 AM
Does macOS have nano?
 
actually, the thing I'm wondering is if macos uses bash
 
They do
They used to use tcsh a while back but then they switched.
Isn't them using nano (or bash now that I think of it) a violation of the GPL?
 
12:30 AM
Wow... so our building literally started vibrating like crazy.
 
Earthquake or construction?
 
Construction.
We're 11 floors up though, so it was a pretty impressive shake.
 
Gotcha.
 
aaaand it's happening again. I think I might go out for lunch. :X
 
not to worry they were just jackhammering the concrete out on that floor, something about bad bolts they gonna fix :-)
 
12:40 AM
@MichaelFrank What timezone are you in? :-P
 
@timotree you misunderstand GPL
If they make no changes, they just need to point you to the source
if they do, they basically need to make sure you can get the source in some format on request
 
OOOOOOOOH
 
apple IIRC has a open source repository for things like that
 
I was thinking of GPL libraries not GPL utilities. nvm
 
In theory, its perfectly fine if they engrave the entire source code in clay tablets and have you come over to make rubbings or cart them off on many trucks
@timotree exactly the same.
blah. I have a third of an answer.
 
12:44 AM
@JourneymanGeek I think GPL libraries can't be used by non GPL-compatibilible licensed software.
That's the whole idea point of LGPL
No?
 
My CPUID HWMonitor Pro license is going to be up in the middle of next year, and I plan to replace it with AIDA64 Extreme (standard license runs $39.95 for three seats, including one year of updates)
 
Bob
@Annaduh ...come to think of it, I should test my X Perf
Samsung's charging behaviour sucks
@allquixotic Nice, does it work?
I'd suggest commenting out the setBackends line for now so you should be able to at least hear the player
 
1:07 AM
@timotree UTC+12
 
@timotree that seems correct, yes
anyone have an os x machine handy?
 
Bob
@JourneymanGeek no it's not
@JourneymanGeek funnily enough? yes, but depends what you need from it (work machine)
 
@Bob there's no specific format for the source tho?
 
Bob
or @allquixotic would have a personal one
 
@Bob ideally I need to see what a very small shellscript does
 
Bob
1:19 AM
@JourneymanGeek iirc there was something about it being a reasonable format. lemme check
 
gist: 8ce6c314dce496586fca4abd38eaf6b7, 2016-12-05 01:20:28Z
    #!/bin/bash
    daydate=x`date +%j`
    
    if [ -f $daydate ];
    then
            echo "task already run"
    else
            rm x*; open -a safari http://www.example.com ; touch $daydate
    fi
@Bob I need to see if this works, essentially
first time it runs, it should fire up safari, and create a lockfile of sorts.
 
Bob
@JourneymanGeek it must be "on a durable physical medium customarily used for software interchange"
 
second time it runs, it should just echo things
@Bob alas. there goes my joke
 
Bob
> 6.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source,
@JourneymanGeek That rm x* is scary
you'd better hope there's nothing else in the dir starting with x...
 
I'll likely replace it with something safer
 
Bob
1:22 AM
anyway, I should be able to test it, but you'll have to wait a bit
 
no rush
 
Bob
...gotta figure out how to get a copy on there :P
 
@Bob No; in fact, I used gstreamer to generate a wav header and it plays back fine in ffplay but it still doesn't work when I pipe that directly into AVPlayer to AVTranscoder
 
Bob
ooh I know I'll just goo.gl it
...or let allq test it if he's willing, probably easier? :P
 
tbh, the main thing I'm wondering is if date +%j works the same way
and I suppose test
and... damnit.
 
Bob
1:23 AM
@allquixotic dammit. can you get AVPlayer to at least give you audio? let it use the default backend and just play. any errors from ffmpeg?
if it's really insane I guess you might need to mux it into a video container o.O
 
I don't know if anything will actually work ;p
 
@Bob sure
WTF is that rm x*; for? is there a specific reason for it?
 
@allquixotic clean out older lockfiles
 
@Bob I learned through code inspection that even if you setAsync(false); the AVTranscoder returns immediately anyway and does all its work in the fucking QCoreApplication mainloop. Of course. Because "async" means "sync".
 
So, what this does is create a "unique" lockfile with the day of year on it. If it exists for that date, it does nothing. else, it clears out the lockfiles
I'll erm
rename that
 
1:26 AM
the only difference is setAsync(true); spawns a new thread and runs the signals and slots in a separate mainloop
 
maybe *.lockfile ?
 
Bob
@JourneymanGeek it works as expected
that rm does whinge about nonexistent files on the first run
@allquixotic it's actually async false by default
 
Bob
@allquixotic also I think that only applies to the player
i.e. the setAsync actually calls the same fn on the media source
 
@Bob right but what I'm saying is even async=false doesn't actually alleviate you from having to catch events on the mainloop
....which I wasn't doing
 
Bob
1:28 AM
so the start() isn't affected but the play() should become sync
 
@Bob no evidence of that
 
Bob
@allquixotic o.O
@allquixotic yea I'm just going by memories from last night :P
it's a massive hole of inheritance and C++
@allquixotic is it hard to use ffmpeg directly?
 
9 hours ago, by allquixotic
@Annaduh Spawning an external process each time someone says something in TS not only adds latency but it's unnecessarily inefficient to setup the codec and tear it down so often
it's easier programmatically, but a messier solution
 
Bob
@allquixotic no, I meant the ffmpeg api
which is what qtav uses anyway
 
the ffmpeg API is a nightmare that makes QtAV look friendly
 
Bob
1:32 AM
basically ditch one layer of half-broken abstraction
@allquixotic ah :\
yea I did take a look at the doxygen
...I love MSDN
(and MDN)
 
I love those resources plus the Qt API docs and the Java API docs
 
Bob
@allquixotic Java API docs are kinda meh
They're alright, but navigation is pretty broken
Once you actually find the right page, they're good :P
@allquixotic Is a TS3 plugin just a plain DLL/SO?
No need for any Qt stuff?
 
@Bob Yes. The Plugin API that your dll/so/dylib must implement is a "plain" C API using the standard calling convention, with simple APIs that take and return types like char *, int, short
the only slight wrinkle is all string data has to be encoded in UTF-8
so C Strings won't work since they're ASCII
 
Bob
@allquixotic Funnily enough? I'm pretty sure if I were to do this from scratch I'd just do the whole thing in C# :P
yay dllexport
and embedding mono looks easy too (for non-windows)
so linking it up is surprisingly not that hard :P
It does feel a bit ugly though :P
@allquixotic can you use libflac directly?
 
Will non-ASCII characters be involved?
If they're not supposed to be, you can strip out >127 characters and poof, you have valid UTF8
 
1:39 AM
@Bob technically yes, but I'm pretty sure it won't convert your PCM data for you, so I'd still have to convert from s16le stereo 48 kHz to s16le mono 16 kHz
@BenN definitely yes - people use accents in their names, either for flare or because they're international
 
Bob
@allquixotic xiph.org/flac/api/… :)
 
Ah, that's definitely a problem :)
 
Bob
> Set the sample rate (in Hz) of the input to be encoded.
 
not likely to see any CJK characters but will definitely see the full gamut of European characters and currency symbols etc eventually
 
Bob
> Set the number of channels to be encoded.
wait, does the Google API only accept a specific rate?
crap
 
1:41 AM
@Bob it requires mono and some TS channel configs are stereo, so at a minimum channel downsampling from stereo to mono is required
it supports up to 48 kHz audio, but the audio buffers would be pretty enormous even heavily FLAC compressed at that sample rate
 
Bob
gaddammit
...if I do make one with C#/mono/CoreCLR, would you use it? :P
 
@Bob is that telling it what sample rate the encoded data is in, though? if it doesn't also give you a (separate) specifier to tell it what sample rate you want in the output FLAC, that's not useful
 
Bob
@allquixotic yea it is
 
@Bob @allquixotic superuser.com/a/1152953/10165 this is the thing.
 
@Bob my preference would be for it to be reasonably cross-platform, working with Mono on Linux and .NET on Windows... but even then, I have some reservations about how useful that might be long term
 
1:43 AM
and wee. I've not written a bash script in ahes
@allquixotic don't trust MS's intentions/interest in c#/mono on linux?
 
there are a lot of other plugins that load random runtimes, .NET among them, maybe Python, who knows... and I'm afraid having too many runtimes in one address space might cause some memory corruption or they might step on each other
 
I don't want a user to download my plugin then be disappointed that it won't work with foo other plugin because it uses a conflicting version of libblah
I figured if I based my code on the Qt libraries used by core teamspeak itself, I'm minimizing my chances of compatibility issues
because if anyone writes a plugin that conflicts with TS's own Qt, it just won't work
besides, I already invested significant effort in using googleapis to prototype out the speech rec code
and already hooked all the TS3 functions needed
 
Bob
@allquixotic I was thinking of embedding CoreCLR
which shouldn't conflict with anything else
at least unless it becomes popular in five years :P
 
@Bob can you "embed CoreCLR" on Windows and Linux?
and if someone else writes a DLL using proprietary .NET 4.5, will it conflict?
 
Bob
1:47 AM
@allquixotic ayup!
@allquixotic ...dunno. prooooobably not?
 
I'm not worried about Linux really because my user base is exclusively Windows users; nobody ever games on Linux except me (latest Steam survey: 0.88%)
 
Bob
Embedding mono is probably more supported though
 
WinSxS should take care of DLL compatibility problems on Windows :)
 
Bob
@allquixotic Actually, Windows would be REALLY easy
won't even have to embed anything
just use DllExport
takes 5 mins, you get a C-style export :P
 
on Windows you could write your plugin linking against Qt 5.7 and load it into TS with Qt 5.6 and it'd work
thank god for WinSxS
 
Bob
1:48 AM
It's the Linux side that's hard and probably requires embedding
 
@Bob ok... so what kind of high level media API am I going to get in C# that can do the PCM resample / downmixing and FLAC encoding?
also I'll have to figure out whether it's possible to generate googleapis bindings for C#
 
Bob
@allquixotic I'd have to actually test, but last I checked it'd probably end up with one lib for encoding and one for pcm manip
but you can probably find an easier C/C++ lib too
 
Something just got migrated and I lost all my rep for it. :-( So close to 200 as well.
 
@timotree You gained rep on the destination though :)
 
But that doesn't help me get to 200 here.
 
1:55 AM
there's what I have now
hand-hacked files are in the base dir *.cpp *.h
and test/
I really liked what sampledef.cpp, speechrec.cpp and kynnaugh.cpp were shaping up into
only convert.cpp is a bitch
this code is a thing of beauty; it's so simple
the functions I have to export for TS are in kynnaugh.cpp
 
Bob
@allquixotic doesn't look hard to do in DllExport. the hard part is making sure the FLAC encoding works... I should probably try that first :P
 
@Bob eh, if there's a good GStreamer binding for C#, I can hack that together easily
appsrc ! audioconvert ! audioresample ! audio/x-raw,channels=1,rate=16000 ! flacenc ! appsink
then run the GLib mainloop and feed it buffers into appsrc and read them out of appsink
I might continue with the C++ version just because I'm not ready to quit... pretty ready to say "fuck you" to QtAV, but I'll try QtGstreamer... distributing it for Windows will be harder, but not impossible
 
@timotree It was a webapps question
and while it dosen't seem that way now, 200 rep is pretty trivial to get. You can do it.
 
Bob
@allquixotic Heh. I'll let you know if I get the FLAC encoding working.
Binding to TS and Google should be the easy part
 
@timotree Also, one of your questions just made the Hot Network Questions sidebar, so it's highly likely that it'll get a ton of traffic
 
2:09 AM
@Bob remember, you have to accept raw PCM s16le 48 kHz stereo or mono, and you have to make sure that the resulting FLAC file is mono, uses 16-bit samples, and has 16 kHz sample rate
and the input data is in my gist git repo as well as the kynnaugh-cc repo
the raw data from TS3 does not include a wav header
 
@Ben is it the one about youtube ads?
 
feel free to add one if you want like I did semi-successfully, but hopefully it isn't necessary
if you get it working with libFLAC bindings to C#, I might just be able to copy your code and port it to C++
 
@timotree The SSH one
 
Bob
@allquixotic PCM conversion is easy. NAudio and CSCore both do it.
It's the FLAC encoding that's hard
 
@Bob nice
 
2:12 AM
Thanks for letting me know! @Ben
 
I think I'll try a custom build of gstreamer for windows that only includes gst-plugins-base and gst-plugins-good for simplicity, because the PCM stuff and appsrc/appsink/audioconvert are in -base, and FLAC is in -good
will shave megabytes off the download
 
So that's how @JourneymanGeek can write with no typos...
 
@ThatBrazilianGuy what is that, a Purina WoofBook Poo?
 
> Poo
I see what you did there...
 
Bob
LOL
literally a C# wav to flac to google speech project
it doesn't do sample conversion (throws error) but I'm sure I can slap a CSCore in there...
unknown licence though
 
2:17 AM
@Bob that's not the same google speech
the Google Cloud Speech API is a very different animal from the one that's available for free in Chrome; the latter is limited to about 50 or 100 calls per (long period of time- day? week? month?)
 
Bob
yea I just found the original source of it
@allquixotic still, the fact that it does flac in a way Google likes...
 
heh
 
Bob
it's basically an example for FLAKE usage
good enough for me :P
 
I know what Google likes, just not how to convert what I have to what they like
if I buy a Pixel XL will they let me use the cloud speech API for free? :(
 
2:24 AM
@JourneymanGeek You clearly need a Purina WoofBook Poo(TM)
Does @allquixotic or any other USAians know what "received by DM" means UPS-wise?
 
Maybe my new Raspberry is now in NY with some guy called David Martin...?
 
Bob
@ThatBrazilianGuy Delivery man? idk
 
Could it be door man?
 
Yeah that's.... not much conclusive.
I guess I'll know when my friend arrives back from the USA
 
2:33 AM
oh
 
I once lived in new york and from my experience if your building has a door person they usually recieve the package for you.
 
@timotree you were the guy asking about coreboot?
 
@JourneymanGeek yes
 
I did some research into it at some point
You quite literally need to find a precise motherboard or laptop that supports it for now
also their site is back up
 
Good to know it's back up.
 
2:36 AM
and I think the 'newest' supported boards are SB/IB
 
If I became paranoid enough for needing an open-source BIOS I would probably get a very esoteric computer.
What is 'SB/IB'?
 
sandy/ivy bridge
lol
actually go buy a second hand t60 or something off of minifree.org
I know of someone who did get a T60 for that
 
I don't see the T60.
But I'm not planning on getting one now anyway.
I just like researching things. :-)
 
6
A: Laptop for key ceremony?

Journeyman GeekI think the most useful way to answer this question is to start with the hardest part of the answer and work my way down should have as much open-source firmware or security certifications as possible. As such my starting point would be the coreboot page, since that lists systems which su...

and thinkpads are awesome easy to maintain, other than the pesky wifi whitelist
 
If you click the link it doesn't list the T60.
 
2:41 AM
naw
 
On a seperate note though, can the linux sleep command handle fractional delay?
 
it was in the past, but I think they ran out
no idea
 
Bob
@allquixotic licensing! :P
CSCore is MS-PL, which is not compatible with GPLv2.
 
@Bob for kynnaugh-cc? meh, I probably have to pick a compatible license with Qt5
 
Bob
But it's apparently compatible with GPLv3, and the FLAKE and CUETools libs are "GPLv2 or any later version"
soooooo :P
 
2:45 AM
@Bob you can mix sources with different licenses; you just can't distribute binaries
you can amalgamate them together by shipping the raw sources as part of a single transaction (zip, git clone, CD, etc) even if licenses aren't compatible
 
Bob
@allquixotic Yea, but can I distribute a binary that dynamically links to another? iirc you can't
 
you just can't build/link and then distribute
 
Bob
anyway, these are technically compatible
 
@Bob not with GPLv2 in the mix, no
 
Bob
by the ability to upgrade the licence on CUETools to GPLv3
which then becomes compatible with the MS-PL one :)
@allquixotic hm, alternatively just distribute the source with build script and rely on the fact that the full .NET Framework includes both the compiler and msbuild :)
 
2:51 AM
\o/
cuetools
 
3:03 AM
newnation.sg/2016/12/… (local satire site)
straitstimes.com/singapore/… (not a satire site, tho sometimes...)
 
@Bob I appreciate you working on that, but I'm simultaneously attempting to rescue kynnaugh-cc with QtGstreamer
 
Bob
@allquixotic eh, won't hurt to try :P
 
Bob
3:45 AM
@allquixotic works perfectly on mono, but stereo is just noise
hmm
my ToMono seems borked :P
or maybe I'm specifying the wrong encoding
@allquixotic github.com/filoe/cscore/blob/master/CSCore/AudioEncoding.cs which one? I was using Pcm
is there one more appropriate?
@allquixotic do you have a copy of the wav file (with riff header)?
oh. ToMono changes bps to 32 float
dammit
wait. or is that just the WriteToFile? O_O
done! it all works! :D
I can give the teamspeak plugin part a shot later if you want
might be able to get rid of CSCore too
 
5:07 AM
@Bob awesome!!!! :D
 
Bob
@allquixotic If you consider the potentially-conflicting licences an issue, the CSCore bit can be replaced e.g. with Win32 API calls
The FLAC lib is GPL
 
gn, all!
(in my silly timezone that is)
 
Bob
FlacBox is permissive, if the whole thing can be under MSPL
actually I'm gonna do that
better avoid the GPL
damn viral licences
 
5:26 AM
@Bob what's FlacBox? another API that's not based on libflac?
 
Bob
@allquixotic yup, pure C# implementation of a FLAC encoder and decoder
 
that sounds slow
 
Bob
just tested and it works well and is even easier to use
@allquixotic well, your sample took all of 23ms to encode. that includes resampling time.
 
@Bob sweet
does it need a RIFF header?
 
Bob
@allquixotic CSCore can generate one :)
WriteToStream is raw, WriteToWaveStream includes a header
So now this whole thing is MSPL
 
5:29 AM
what are the dependencies?
 
Bob
@allquixotic CSCore and FlacBox. Might pull in Skeet's MiscUtil for a bit better perf (currently duplicating the buffer one more time than necessary)
CSCore is MSPL, FlacBox is ... I think it's MIT or BSD, very permissive
 
does it use that .NET package manager thingy?
 
Bob
@allquixotic yup
wait I'll push to gist
 
sweet
 
Bob
actual code written is incredibly minimal
ah crap
@allquixotic one sec, gist doesn't support dirs so I'm gonna have to make a proper project for this
@allquixotic or, if you want to create one, I can push it up to yours
 
5:33 AM
@Bob nah, this one's your work
though I may build off of it if it looks easier than fixing kynnaugh-cc
NuGet is sounding a lot easier than managing DLLs manually
 
Bob
@allquixotic If you're sticking with Windows, I'm pretty sure the UnmanagedExport thing should work with TS3
And the Google API part should have plenty of C# examples... it's just a file upload, no?
 
@Bob well no, for best performance you use the protobuf-based gRPC protocol instead of REST/JSON
http/2 etc
 
Bob
So MSPL is only "weakly copyleft", so I don't have to put the whole project under it
yay
@allquixotic I bet this one uses whatever is optimal github.com/google/google-api-dotnet-client
 
Bob
really? o.O
pretty sure I saw protobuf references in there
ack
@allquixotic I suspect it's a WIP. they have C# gRPC examples, but not for Speech yet
@allquixotic now that you remind me, Java FLAC converter? :P
 
5:48 AM
@Bob Java?! why?
 
Bob
@allquixotic Because more libs are available :P
then again, linking from a DLL is much harder
 
IIRC, FLAC is little more than gzipped PCM samples anyway
lol
 
Bob
@allquixotic that's probably why all the libs just want wav
actually could modify FlacBox to take raw PCM and a couple options, and remove the header parser
oh well, it's working right now, better not touch it :P
 
man, that's super concise
 
Bob
@allquixotic hm?
 
5:53 AM
your code to do this
 
Bob
ah
leaning heavily on nice libs :P
actually I can get rid of one memorystream
 
I don't think this is going to work on linux, but I'm not too distraught
unless I can somehow embed CoreCLR O_O
 
Bob
@allquixotic I was thinking Mono would be easier
If you really want to you'd just need to create a C wrapper that hooks TS and embeds mono
both audio libs I used are pure CIL
there, slimmed it a bit
If you really want to optimise, the current resampling run has a fair bit of abstraction-caused redundancy
the ToMono and ChangeSampleRate include a few implicit sample/wave conversions that can be merged
 
might not be necessary o_O
 
Bob
lol
@allquixotic I'm gonna take a shot at exporting the C bindings
though I'm not sure if I'll be able to test
 
Bob
hm?
 

« first day (2313 days earlier)      last day (2697 days later) »