UmbralRaptor changed the topic of #kspacademia to: https://gist.github.com/pdn4kd/164b9b85435d87afbec0c3a7e69d3e6d | Dogs are cats. Spiders are cat interferometers. | Космизм сегодня! | Document well, for tomorrow you may get mauled by a ネコバス. | <UmbralRaptor> egg|nomz|egg: generally if your eyes are dewing over, that's not the weather. | <ferram4> I shall beat my problems to death with an engineer. | We can haz pdf
<SilverFox>
just in programming in general
<whitequark>
historical reasons
<SilverFox>
whitequark, what would be a good medium for long-term storage for my computer? floppy?
<whitequark>
some of the new x86 instructions are huge
<whitequark>
"VZEROUPPER" is a thing
<SilverFox>
lol what that do
<whitequark>
PCLMULLQLQDQ is also a thing
<egg>
oh there's a different addressing scheme for labels
<whitequark>
SilverFox: floppies are not a good long term storage medium
<whitequark>
i'm not really sure if we have any good long term storage medium at all
<egg>
addresses 0 .. 9 are labels 0 .. 9, 10 .. 14 are labels A .. E, 15 .. 19 are labels a .. e
<whitequark>
other than shit like "engrave it with a SEM on a metal plate"
<whitequark>
well with a FIB
<egg>
(there's a GTO and GSUB (I) that uses that addressing scheme)
<SilverFox>
well, whats the best medium for me to use given the capabilities
<egg>
and then there's the weirdest use of (I), which is DSP (I)
<SilverFox>
bunch of flash chips with a watch battery?
<whitequark>
whats the battery for
<egg>
DSP (I) sets the number of significant digits being displayed to I
<whitequark>
if you want a parallel flash, use NOR
<SilverFox>
okay
<whitequark>
if you can do with a serial flash (so you need SPI), use FeRAM
<whitequark>
parallel NOR flash is super easy to use, it's like SRAM but without the writes
<whitequark>
well, the writes require a special sequence, that is
<SilverFox>
I dont like serial
<whitequark>
FeRAM is just your normal ass SPI flash, except it's *way* faster and probably one of the most reliable current media
<whitequark>
TI has tried to test FeRAM destructively, i.e. until it rubs through
<whitequark>
last time i looked they were running it for years in parallel, still waiting for a single bad bit
<whitequark>
theory says it will happen at some point, but the MTBF is longer than how long we've had it for
<whitequark>
you can definitely break both NOR (100k cycles) and NAND (10k cycles) easily just by leaving it for a few days
<SilverFox>
for a few days?
<SilverFox>
damn
<SilverFox>
I also dont want to manage TRIM
<whitequark>
well, the write time is on the order of milliseconds per cell
<whitequark>
so a day is like on the order of a million cycles
<SilverFox>
flash storage seems poopy then
<whitequark>
i'm simplifying it greatly
<whitequark>
there's also erase time
<whitequark>
well
<whitequark>
NOR is good for a boot ROM or such
<whitequark>
erasing NOR is incredibly slow
<whitequark>
on the order of hundreds of ms
<whitequark>
but it doesn't have bad blocks and doesn't need an FTL (what you call TRIM)
<whitequark>
NAND is fast but you have to actively manage it or it'll die
<SilverFox>
how hard is SATA?
<whitequark>
forget about doing DIY SATA
<whitequark>
i mean
<whitequark>
it's not that you can't do it
<SilverFox>
I just wanna be like "Here's the address, here's the data"
<whitequark>
it's more that the SATA interface alone will be a few orders of magnitude more complex than the entire rest of your project
<whitequark>
which sorta defeats the purpose imo
<SilverFox>
yeah true
<whitequark>
using old IDE drives is more realistic
<whitequark>
esp in PIO mode
<whitequark>
of course those are kind of a limited supply at this point
<SilverFox>
cant I use some jank combination of IDE adapters?
<whitequark>
to SATA?
<SilverFox>
to something idk
<whitequark>
that's plausible but honestly those things are shit and idk how you'll debug it if it breaks
<whitequark>
they barely work with PCs
<whitequark>
they basically test them by plugging into a windows machine once. i'm exaggerating but.
<SilverFox>
there's really no winning here is there
<whitequark>
you really should just use serial flash
<whitequark>
serial flash, serial PSRAM, serial Ethernet adapter, all fit fairly welll
<SilverFox>
yeah but then I need parallel-serial adapters for all of them
<whitequark>
you need one
<whitequark>
and it's two 74xx shift registers
<whitequark>
and a counter
<SilverFox>
would giving my ethernet module DMA be a bad thing?
<whitequark>
you can't use DMA for ENC28J60 directly
<whitequark>
since it can't bus master. since... well... it's an SPI device
<SilverFox>
what I'm thinking is, a section of memory dedicated to outgoing, and incoming data packets, hardware interrupt on updating these memory addresses, and the ethernet module gets told when there is outgoing data updated, and then it has the ability, when it gets incoming data, to just straight right it to the incoming portion of system allocated ram
<whitequark>
enc28j60 can't read your ram
<SilverFox>
reee
<whitequark>
you'll need to make a wrapper around it of some sort that can do that, if you want dma
<SilverFox>
there's already going to be a wrapper
<whitequark>
if you want your SPI devices to be memory-mapped or do DMA you'll need to wrap them in that yeah
<whitequark>
it's doable with more 74xx jank
<SilverFox>
the wrapper is required because parallel to serial, and other things
<SilverFox>
im not just going to integrate the ethernet module into the entire system, that's just silly
<whitequark>
you can use one SPI master for all of your SPI devices
<whitequark>
since you can use the CS# pin to distinguish between them
<whitequark>
but each device with DMA needs a dedicated one anyway
<whitequark>
i guess not strictly "needs" but it's more practical
<egg|cell|egg>
Meow
e_14159 has joined #kspacademia
<SilverFox>
!c e
<galois>
SilverFox: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'Name' not implemented.
<SilverFox>
why does this bot lack the ability to give me the value e?
e_14159_ has quit [Ping timeout: 378 seconds]
<whitequark>
!c pi
<galois>
whitequark: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'Name' not implemented.
<whitequark>
!c this
<galois>
whitequark: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'Name' not implemented.
<whitequark>
!c self
<galois>
whitequark: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'Name' not implemented.
<whitequark>
hm
<whitequark>
!c (1).__dict__
<galois>
whitequark: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'Attribute' not implemented.
<whitequark>
ok well fuck you tooo
<whitequark>
!c []
<galois>
whitequark: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'List' not implemented.
<whitequark>
!c ()
<galois>
whitequark: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'Tuple' not implemented.
<whitequark>
!c True
<galois>
whitequark: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'NameConstant' not implemented.
<whitequark>
!c 1.bit_length()
<galois>
whitequark: <class 'SyntaxError'>: invalid syntax (<unknown>, line 1)
<whitequark>
hm.
<whitequark>
!c (1).bit_length()
<galois>
whitequark: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'Call' not implemented.
<whitequark>
right.
<whitequark>
ok well whoever made that calculator did a good job
<galois>
whitequark: <class 'ValueError'>: Pow expression too complex to calculate.
<whitequark>
that's some attention to detail
<egg|cell|egg>
;rpn 2 100000000000000 ^
<kmath>
egg|cell|egg: inf
<egg|cell|egg>
Good bot
<galois>
=]
<egg|cell|egg>
Um
<SnoopJeDi>
whitequark, Sopel is a very strange codebase
<SnoopJeDi>
some stuff like the calc/dice code is actually kind of lovely to read, some parts are just held together with spit
<egg|cell|egg>
;rpn 1 0 0 / ^
<kmath>
egg|cell|egg: 1
<SilverFox>
you'll hate reading my bot's code
<egg|cell|egg>
;rpn -1 0 0 / ^
<kmath>
egg|cell|egg: -nan
<egg|cell|egg>
;rpn -1 1 0 / ^
<kmath>
egg|cell|egg: 1
<SilverFox>
the entire design philosophy of my bot, whose main code is several thousand lines, is "that'd be a neat feature to have" and it just gets added
<SilverFox>
if it takes deliberate thought or time to parse out, it doesn't get done
<whitequark>
isn't this just most irc bots
<egg|cell|egg>
I used to have a bot that passed stuff to Mathematica
<egg|cell|egg>
And flooded the channel with the answer
<SnoopJeDi>
SilverFox, that's how galois's extra functionality is, but Sopel is a nice base
<SnoopJeDi>
whitequark, tbf, it's also pretty much how the spec works
<SilverFox>
snoopdawhoop what your bot do?
<SnoopJeDi>
stupid things, mostly
<SnoopJeDi>
!wpn SilverFox
* galois
gives SilverFox a germanium polonium eagle
<SilverFox>
a, a non-legal weapon dispensory
<SilverFox>
my bot does stocks
<SnoopJeDi>
I think Sopel ships with a stocks feature, but I think I've turned most of it off
<SnoopJeDi>
I know the Wolfram feature in this version of it is out of date
<SilverFox>
mine isn't finished how I'd want it
<SilverFox>
but you can track stock pricing
<SilverFox>
wolfram sucks ass now
<SilverFox>
can't even convert currency
<SilverFox>
it used to, but cant because ???
<whitequark>
stonks
<whitequark>
oh, does anyone want to run rink-irc?
<whitequark>
it can do shit like !rink 100 BTU/hr -> W
<whitequark>
and !rink 10 g / molar_mass of C2H5OH
<whitequark>
volume of (property of egg egg_volume; volume)
<whitequark>
volume_white of (property of egg; m^-3)
<whitequark>
luminance_overcast of (property of sun sun_lum_overcast; luminance; Average, overcast sky.)
<whitequark>
specific_energy_235_fission of (property of uranium; Total energy from uranium fission. Actual efficiency of nuclear power plants is around 30%-40%. Note also that some reactors use enriched uranium around 3% U-235. Uranium during processing or use may be in a compound of uranium oxide or uranium hexafluoride, in which case the energy density would be lower depending on how much uranium is in
<whitequark>
the compound.)
UmbralRaptop has quit [Quit: Bye]
<SnoopJeDi>
...huh, I just noticed Pint has a paragraph detailing the MCO mishap, and linking to the official investigative report. Neat!
UmbralRaptop has joined #kspacademia
UmbralRaptor has joined #kspacademia
UmbralRaptop has quit [Ping timeout: 202 seconds]
egg|cell|egg has quit [Ping timeout: 190 seconds]
UmbralRaptor has quit [Quit: Bye]
UmbralRaptop has joined #kspacademia
egg|cell|egg has joined #kspacademia
<egg|cell|egg>
!wa egg volume
<egg|cell|egg>
;wa egg volume
<kmath>
egg|cell|egg: egg->amount->1 egg->serving volume: 34 mL (milliliters)
<egg|cell|egg>
!wpn whitequark
* galois
gives whitequark a theory
<whitequark>
oh useful
<whitequark>
!wpn egg
* galois
gives egg a gradient-descent experiment
<egg>
whitequark: oh wow the мк61 is furiously similar to the HP-67
<egg>
whitequark: cursed idea: a language & compiler targeting both calculators
<whitequark>
why
<egg>
whitequark: it's just that the similarity of some instructions struck me
<egg>
whitequark: also I've kinda done that with that HP-67/HP-97 simulator, because they are actually equivalent aside from one having a printer
<whitequark>
ah
<egg>
and syntactic differences, [GSB] [f] [a] vs. [g] [GSB f] [a]
<egg>
HP-97 has more keys, so only one modifier
<egg>
f lowercases A to a, so GSB a is GSB f a on the 97, but GSB is not a key on the 67, it's f GTO; GSB f becomes g GTO
<egg>
(hence that grammar)
<egg>
whitequark: oh the display actually says ЕГГОГ, the -67 said Error (or Еггог maybe) with lowercase
<egg>
also Crd if it wanted a magnetic card
<egg>
> From exponents above 200 the display can show a ЗГГОГ
<egg>
whitequark: oh you can indirectly address via any register? nice
<egg>
whitequark: it's interesting that it displays the opcodes directly (with the digits 0123456789-LСГЕ ); the HP-67 and -97 would display (numerically) the keystrokes that led to the relevant instruction
<egg>
so the same instruction on the same card would be displayed 31 25 11 on the HP-67 and 21 11 on the HP-97
<galois>
KeyError: 'extract' (file "/usr/lib/python3/dist-packages/sopel/modules/wikipedia.py", line 87, in mw_snippet)
<egg>
whitequark: it fits on 112 instructions (terminated by a Run/Stop on 113, which is the default value of program memory), so that it could be stored on one side of the card, with the other side holding the saved game
<egg>
whitequark: if you use both sides of a card you have 224 instructions (executed cyclically if you fallthrough from 224), but on 113 it's a bit tight so there's a bit of weirdness in that program
<egg>
fallthroughs everywhere
<egg>
whitequark: there's a sort of principle that "public" subprograms are at labels A .. E, a .. e, and the numeric labels are for "private" utilities, in that the alphabetic labels can be executed by pressing the relevant keys, which are just below the card (on which you would write a description of their function)
<egg>
whereas you can only run the numeric labels with [GSB] <digit>
<egg>
[f] [GTO] <digit> really
* egg
stares at label E
<egg>
so uh, instructions 080 .. 088 are C := frac(2^(frac(C * e^8))) for some reason?
<egg>
oh that must be the generation of a new game
<SnoopJeDi>
10:20 <galois> [WIKIPEDIA] Быки и коровы | "Быки и коровы — логическая игра, в ходе которой за несколько попыток один из игроков должен определить, что задумал другой игрок. Варианты игры могут зависеть от типа отгадываемой
<SnoopJeDi>
последовательности — это могут быть числ
<SnoopJeDi>
I guess the plugin behaves differently depending on the target
<egg|work|egg>
here it cuts off as чи�
<egg|work|egg>
!c len("#kspacademia")
<galois>
egg|work|egg: <class 'sopel.tools.calculation.ExpressionEvaluator.Error'>: Ast.Node 'Call' not implemented.
<egg|work|egg>
!py len("#kspacademia")
<galois>
egg|work|egg: 12
<egg|work|egg>
!py len("SnoopJeDi")
<galois>
egg|work|egg: 9
<egg|work|egg>
!py len("сл")
<galois>
egg|work|egg: 4
<egg|work|egg>
so it cuts off in the middle of the с when talking here, because it has 3 bytes fewer to work with
<SnoopJeDi>
right, I'm just wondering why that truncation only happens in "public"
<egg|work|egg>
SnoopJeDi, because "#kspacademia" is longer than "SnoopJeDi"
<SnoopJeDi>
OH
<egg|work|egg>
it would truncate the same if your name were SnooooopJeDi
SnoopJeDi is now known as thisisamuchlongernickname
thisisamuchlongernickname is now known as SnoopJeDi
<SnoopJeDi>
Yes, that makes much more sense. Merci!
<kmath>
YouTube - Drop It Like It's Hot by Snoop Dogg ft. Pharrell | Interscope
<SnoopJeDi>
Drop It Like It's Not Unicode-Aware
<SnoopJeDi>
I wonder if that's been changed upstream
<egg|work|egg>
I guess the bot should be migrated to the third snake
<SnoopJeDi>
It's running on 3.5 but it's just written poorly in this spot
<SnoopJeDi>
...and it tries to be polyglot
<SnoopJeDi>
_without_ using six
<SnoopJeDi>
if sys.version_info.major >= 3:
<SnoopJeDi>
unicode = str
<SnoopJeDi>
basestring = str
<SnoopJeDi>
py3 = True
<SnoopJeDi>
else:
<SnoopJeDi>
py3 = False
* SnoopJeDi
screams
<egg|work|egg>
!py round(8/3)
<galois>
egg|work|egg: 2.0
<egg|work|egg>
that's not Python 3
<SnoopJeDi>
That's correct, !py doesn't run on the host
<egg|work|egg>
ah that explains why !py is a mess when it comes to unicode handling
<egg|work|egg>
!py "с"
<galois>
egg|work|egg: Ñ
<egg|work|egg>
!py "с".encode("utf-8")
<galois>
egg|work|egg: UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 0: ordinal not in range(128)
<SnoopJeDi>
!py u"с"
<galois>
SnoopJeDi: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
<SnoopJeDi>
uh
<SnoopJeDi>
I guess it garbles encoding there too before it goes off-site
<SnoopJeDi>
egg|work|egg, I've learned a lot about Unicode from being a fly on the wall in here. Enough to write some tests in an interview, at least. ß and casefold() in particular seemed to score me a few points, anyway
<SnoopJeDi>
Of course, "a lot" is mostly summarized by "enough to know I should be deferring this Very Hard Problem to existing wisdom"
<SnoopJeDi>
what do you think, galois? Want an upgrade?
<SnoopJeDi>
!8
<galois>
SnoopJeDi: yes
<_whitenotifier-cd19>
[Principia] Kerbinator-CN commented on issue #2347: Burn in time warp with RO ion engines (new feature suggestions) - https://git.io/Jec2V
<mofh>
so a transformer exploded at La Plaine - Stade de France & this took out the section of the RER B between Gare du Nord & Aulnay-sous-Bois, everything is chaos right now.
<mofh>
I just spent like 15 minutes helping direct confused tourists at Châtelet, lol.
<mofh>
egg|cell|egg: sounds like a tasty potato purée
<kmath>
<✔RERB> [panne électrique] suite à une rupture de caténaire à La Plaine Stade de France, le trafic est interrompu entre l'A… https://t.co/YydfFxzZMU
<kmath>
<fxcoudert> I’m a bit puzzled to see the academic community creating more closed-source #compchem software, despite the need fo… https://t.co/EU4YGyxmo8
<kmath>
<JPRidgeway> @FakeUnicode of the day: Proposal to register LATIN CAPITAL LETTER A ABOVE BASELINE and LATIN CAPITAL LETTER E BELO… https://t.co/tdQdYfEfG2
UmbralRaptor has joined #kspacademia
UmbralRaptor has quit [Client Quit]
UmbralRaptop has quit [Read error: Connection reset by peer]
UmbralRaptop has joined #kspacademia
UmbralRaptor has joined #kspacademia
UmbralRaptop has quit [Ping timeout: 190 seconds]
<_whitenotifier-cd19>
[Principia] sswelm commented on issue #2347: Burn in time warp with RO ion engines (new feature suggestions) - https://git.io/Jeco9
UmbralRaptor has quit [Client Quit]
UmbralRaptop has joined #kspacademia
UmbralRaptor has joined #kspacademia
UmbralRaptop has quit [Ping timeout: 202 seconds]
<UmbralRaptor>
"Think of how far those photons traveled to get here. It'd be a shame if they were reflected off of a closed dome!" -- my advisor encouraging us to do TESS followup
UmbralRaptor has quit [Quit: Bye]
UmbralRaptop has joined #kspacademia
<B787_300>
UmbralRaptop: just think of all the planets that some photons hit without being collected into a sensor
<UmbralRaptop>
Could be worse. Imagine if we were doing high-z astronomy