code logs -> 2017 -> Wed, 12 Apr 2017< code.20170411.log - code.20170413.log >
--- Log opened Wed Apr 12 00:00:50 2017
00:29 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Operation timed out]
01:03 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
01:07 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
01:07 mode/#code [+o Alek] by ChanServ
02:34 Kindamoody is now known as Kindamoody[zZz]
03:27 Turaiel is now known as Turaiel[Offline]
03:36 Turaiel[Offline] is now known as Turaiel
03:49
<&[R]>
http://libcello.org/
04:18 macdjord|slep [macdjord@Nightstar-ahbhn1.cable.rogers.com] has quit [Connection reset by peer]
04:18 macdjord|slep [macdjord@Nightstar-ahbhn1.cable.rogers.com] has joined #code
04:18 mode/#code [+o macdjord|slep] by ChanServ
04:25 macdjord|slep [macdjord@Nightstar-ahbhn1.cable.rogers.com] has quit [Connection reset by peer]
04:26 macdjord|slep [macdjord@Nightstar-ahbhn1.cable.rogers.com] has joined #code
04:26 mode/#code [+o macdjord|slep] by ChanServ
04:31 Turaiel is now known as Turaiel[Offline]
04:32 Jessikat [Jessikat@Nightstar-06bf49.dab.02.net] has joined #code
04:35 Jessikat` [Jessikat@Nightstar-kcsmqv.dab.02.net] has quit [Ping timeout: 121 seconds]
05:07 Derakon is now known as Derakon[AFK]
07:16 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
07:16 mode/#code [+qo Vornicus Vornicus] by ChanServ
07:36 Kindamoody[zZz] is now known as Kindamoody
07:43
<~Vornicus>
gah, still too many instructions to fit on one chip. The motor drive for the aquaponics thing is annoying.
07:55 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
07:56 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has joined #code
07:56 mode/#code [+o Reiv] by ChanServ
08:01
<~Vornicus>
now I'm trying to fit it on *two* chips and it's still too much to do.
08:01
<~Vornicus>
There Has To Be A Better Wayâ¢
08:20 * Vornicus needs literally one more word of memory.
08:34
<~Vornicus>
frustration! I can't see how to do this at all.
08:39
<@abudhabi>
What are you making?
08:40
<~Vornicus>
playing shenzhen i/o, making an aquaponics robot controller.
08:40
<~Vornicus>
Primary challenge is, given a station number, provide commands to move the robot to that station from whereever it is.
08:43 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [Connection closed]
08:46 celticminstrel is now known as celmin|sleep
08:52 Kindamoody is now known as Kindamoody|afk
08:56
<~Vornicus>
So much of this would be easier if I had a one instruction negate command
08:57
<~Vornicus>
instead I have to use both registers and three instructions to do that.
09:00
<@abudhabi>
Hm.
09:00
<@abudhabi>
Suppose I have an Enum in Java. Is there a way to easily determine if a given code is before any other code in there?
09:02
<@abudhabi>
Like, I've got O, B, A, F, G, K, M and I want to grab the values that are AFTER an arbitrary value I'm given.
09:02
<@abudhabi>
So if I'm given A, I want to grab F, G, K and M.
09:02
<@abudhabi>
Or do I need to do that manually?
09:19
<~Vornicus>
enums in java appear to not have numbers available directly
09:19
<&McMartin>
Indeed not; they're a discipline for pre-constructed objects
09:19
<~Vornicus>
the things I see people doing are adding functions to the enum.
09:20
<&McMartin>
Yep
09:20
<&McMartin>
That's a big thing to do, it gets you a clunky approximation of algebraic data types
09:21
<~Vornicus>
theeere it goes.
09:21
<~Vornicus>
good lord I'm apparently terrible at this assembler stuff
09:22
<@abudhabi>
So you're saying I can't compare these objects?
09:22
<~Vornicus>
Not like that.
09:22
<@abudhabi>
At least not without overloading equals, etc.
09:23
<&McMartin>
Vornicus: I turn out to be pretty awful at wiring chips together
09:23
<&McMartin>
Also it took me far, far too long to really become aware of the slx instruction and how utterly crucial it is
09:25
<~Vornicus>
I wish I could use slx in some of these situations
09:26
<~Vornicus>
I'm talking to radios, and they produce -999 instead of blocking, so I end up with two or three instructions instead of 1.
09:27
<&McMartin>
Ah yes
09:27
<&McMartin>
You can buffer those with extra chips but that rarely helps
09:27
<&McMartin>
What *can* matter is that XInput external sources are fully buffered
09:28
<&McMartin>
If for some reason your problem doesn't require all its data immediately, you can totally spread the reads out over multiple clock cycles
09:28
<~Vornicus>
(once I get into my own hardward, slx is used heavily; I've got three chips for aquaponics, one which needs to deal with async, one which uses slx and a guard line to know when to read from memory, and one that uses data it slx's for)
09:28
<&McMartin>
That shaved off something like five chips off one of my designs -_-
09:28
<~Vornicus>
lordy.
09:28
<&McMartin>
Two RAM chips, two controllers, and a multiplexer logic unit, IIRC
09:29
<&McMartin>
Routing that one was no fun at all and I was operating under a restriction I didn't even have -_-
09:29
<&McMartin>
Also man you are cruising
09:31
<&McMartin>
I should go win 3 more games of solitaire
09:33
<~Vornicus>
are radios fully buffered?
09:47 * Vornicus pokes vaguely at the aquaponics one, tries to figure out if there's a way to eschew the memory chip.
10:01 * McMartin goes and wins 3 more games of solitaire.
10:02
<&McMartin>
I think radios are fully buffered but I also think that most cases require you to consume all input and respond within the same clock cycle
10:03
<~Vornicus>
mm, aquaponics you *may* need all three on the first clock but usually you use one, wait 4-6 clocks, then the next, wait a clock or 3, then the third.
10:11 * McMartin gets his 21st win, goes to bed
10:20
<@TheWatcher>
g'night
11:02 Jessikat` [Jessikat@Nightstar-6unaiq.dab.02.net] has joined #code
11:05 Jessikat [Jessikat@Nightstar-06bf49.dab.02.net] has quit [Ping timeout: 121 seconds]
11:26
<~Vornicus>
baaaah, simple i/o is limited to 0 to 100 :(
11:39 * Vornicus now pokes at the i ching one.
11:52 Jessikat` is now known as Jessikat
12:03 * abudhabi headscratches.
12:04
<@abudhabi>
I want to convert the gravitational constant to kilometers, from meters. I should divide it by 1000 000 000, right?
12:29
<~Vornicus>
correct
12:31
<@abudhabi>
And converting it from seconds to standard days would take multiplying it by (86400*86400)?
12:37
<@abudhabi>
So many yaks. So little time.
12:40 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection reset by peer]
12:41 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
12:41 mode/#code [+qo Vornicus Vornicus] by ChanServ
12:44
< Jessikat>
New quest: document all our core types and see how far I can get before anyone stops me and tells me to do something else
12:53
<~Vornicus>
watch them worship at your feet
12:55
<@abudhabi>
Urgh. If you take the square root of [1/s^2] you get [s]?
12:58
<@abudhabi>
Ah, I think I see.
12:58
<@abudhabi>
There's a double division here, which means you flip the numerator and the denominator.
13:41 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code
13:56
<~Vornicus>
too damn many inputs
14:13
<~Vornicus>
this would work if I could fit everything on the board.
14:20 celmin|sleep is now known as celticminstrel
14:29 * Vornicus manages to fit everything on the board. so full.
14:38 IRCFrEAK [gk.1wm.su@Nightstar-fae.6pf.118.50.IP] has joined #code
14:39 IRCFrEAK [gk.1wm.su@Nightstar-fae.6pf.118.50.IP] has quit [RecvQ exceeded]
14:58
<~Vornicus>
http://imgur.com/v4z3xm3 srsly
15:00
<@TheWatcher>
Impressive
15:10 * Vornicus is also halfway to BECOME IMMORTAL because it is a quite good solitaire game.
15:15 * TheWatcher eyes this
15:15
<@TheWatcher>
I'm going to have to do horrendous things with SQL again, aren't I -_-
15:16
<@Tamber>
Yes.
15:18
<@ErikMesoy>
Ever was it so, ever will it be
15:19 * TheWatcher breats out set, variables, subqueries, and the Forbidden Song of Hali
15:25
<@TheWatcher>
*breaks even
16:11
< Jessikat>
XD
16:11
< Jessikat>
I've decided that Value Collections is the general designation of types of set containers.
16:11
< Azash>
I dunno, that last part seems more like bleats
17:29
< Jessikat>
...all of our container types except the ones I've written are awful
17:30
< Jessikat>
(well, and the specialised ones the projects use)
17:32 Jessikat` [Jessikat@Nightstar-bf2126.dab.02.net] has joined #code
17:33
< RchrdB>
Jessikat`, no std:: stuff?
17:33
< Jessikat`>
For a variety of sane, largely historical reasons, we define our own containers and algorithm implementations
17:34
< Jessikat`>
Though the std containers are bad enough that I wouldn't want to use them for what we do anyway, given the chance to avoid it
17:34 mak10lee [mak10lee@Nightstar-k4o.l05.66.41.IP] has joined #code
17:35
< Jessikat`>
It's not really their fault, they're just specified in ways that make it impossible to optimise them for modern architectures (largely because memory is now so much slower than cpu computation)
17:35 Jessikat [Jessikat@Nightstar-6unaiq.dab.02.net] has quit [Ping timeout: 121 seconds]
17:37
< RchrdB>
Howso? std::list, std::slist are obviously awful but std::vector is dense?
17:37
< RchrdB>
or is it like
17:38
< RchrdB>
the fact that they give you no help whatsoever with arranging data in a SoA (instead of AoS) layout?
17:38
< Jessikat`>
std::vector is the reasonable one, though. vector<bool> is still a wart
17:39
< Jessikat`>
It's the fact that even unordered_map will guarantee you at least two cache misses per operation
17:40
< Jessikat`>
So there's no fast associative collection available in the standard library
17:41
< RchrdB>
Is that an implementation issue or is does the interface practically mandate it?
17:41
< Jessikat`>
The interface mandates that you have a closed addressed bucketed implementation
17:42
< Jessikat`>
I believe std::map has similarly bad properties, though I know less about that one
17:42
< Jessikat`>
You'll also find that people depend on the fact that the internal nodes are never moved
17:42
< Jessikat`>
Despite that not being part of the explicit interface
17:43
< RchrdB>
I vaguely recall hearing that std::map is mandated to be a red-black tree or something like that.
17:43
< Jessikat`>
Yeah, I would imagine so
17:43
< Jessikat`>
Either way, the interfaces are too wide and too involved
17:43
< RchrdB>
Which is obviously, uh, I mean you almost certainly want a 4-way or 8-way btree at the very minimum?
17:44
< Jessikat`>
If you get the chance to look at clojure's collections, those are interesting
17:44
< Jessikat`>
I admit I don't know what my ideal tree would look like on current architecture, but it's going to be nothing like std::map was originally intended
17:45
<&jerith>
I think I've spent more time playing solitaire than playing the actual game.
17:45
< RchrdB>
I was thinking, since we have 64 byte / 8 word long cache line sizes on basically all the computers that people use nowadays
17:46
< RchrdB>
then it probably doesn't make sense to have a balanced tree data structure with a maximum branching factor below 4? because once you've read in one cache line, you may as well use the whole thing to look at more {key,subtree} pointer pairs
17:47
< RchrdB>
Jessikat`, btw do you have an opinion on EASTL?
17:47
< Jessikat`>
They probably have some good points but it almost certainly doesn't fix what it needs to, I would imagine
17:48
< Jessikat`>
But yeah, what you really want is an interface on your collections that is independent of implementation, then treat any tweaks that you might want based on machine as platform specifics
17:49
< Jessikat`>
You might actually want to choose between closed and open addressing for your dictionary types, I guess
17:49
< Jessikat`>
But it's still a detail that you ought not to care about at the top level
17:49
< Jessikat`>
It should ideally be a compile time or runtime option that can be set globally or for specific collections if you really need it for some purpose
17:49
< RchrdB>
btw I had to look up http://stackoverflow.com/questions/31112852/how-stdunordered-map-is-implemented
17:50
< RchrdB>
because I didn't understand, from glancing at the docs, where the fact that the interface for std::unordered_map mandates closed addressing comes from
17:51
< RchrdB>
though I will say that the explicit notice about exactly when rehashing is allowed to occur in the docs for operator[] *did* sound fishy. :)
17:52
< Jessikat`>
It literally allows you to ask for buckets, which just flat out means you can't do open addressing, I think
17:52
< Jessikat`>
But yeah, heh
17:53
< RchrdB>
Oh! I missed that.
17:53 Jessikat` is now known as Jessikat
17:54
< RchrdB>
btw I was asking your opinion of EASTL because I was curious. I don't know anything about it except hearing that EA peeps wrote it to address shortcomings in stl, so I was curious to hear the opinion of it from someone with way more C++ experience than me.
17:56
< Jessikat>
I suppose you could always have special iterator types that check the hashes of the buckets as they go
17:56
< Jessikat>
Hmm
17:56
< Jessikat>
Anyway
17:56
< Jessikat>
Oh, I've not actually looked at the EASTL for some time
17:57
< Jessikat>
I remember they had some very particular opinions on allocators which are likely relevant, though those are being looked at and replaced right now
18:32 mak10lee [mak10lee@Nightstar-k4o.l05.66.41.IP] has quit [[NS] Quit: ]
18:50
<~Vornicus>
modern system performance befuddles the hell out of me
18:53 Jessikat` [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
18:53
< RchrdB>
it's fun though! :)
20:01 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
20:06 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
20:06 mode/#code [+o Alek] by ChanServ
20:09
<&jerith>
This colour changing shoes thing seems really hard.
20:09
<&jerith>
Which means I'm probably missing a simple trick that would get rid of a whole bunch of code.
20:48 Jessikat [Jessikat@Nightstar-bf2126.dab.02.net] has quit [[NS] Quit: Bye]
21:03 Jessikat` is now known as Jessikat
21:41 Kindamoody|afk is now known as Kindamoody
21:48 ErikMesoy [Bruker@Nightstar-hq72t5.customer.cdi.no] has left #code []
22:02
< Jessikat>
Also, the collective noun for C++ templates is 'a sawblade'
22:02
<&McMartin>
"A sawblade of templates"?
22:03
<&McMartin>
Also, re: EASTL: I don't suppose it has credited developers, does it?
22:04
< Jessikat>
it appears to exist as an open source thing now
22:04 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
22:05
<&McMartin>
Aha, so it does
22:05
<&McMartin>
And it has credits!
22:05
<&McMartin>
And I don't know any of the names.
22:18 Jessikat [Jessikat@Nightstar-bf2126.dab.02.net] has joined #code
22:58 Turaiel[Offline] is now known as Turaiel
23:29 Kindamoody is now known as Kindamoody[zZz]
--- Log closed Thu Apr 13 00:00:52 2017
code logs -> 2017 -> Wed, 12 Apr 2017< code.20170411.log - code.20170413.log >

[ Latest log file ]