#avr | Logs for 2016-10-15

Back
[00:19:43] <rue_bed> masking and shiftin
[00:19:44] <rue_bed> g
[00:30:00] <theBear> moovin, schmoovin
[08:10:10] <tiblock> Hi. I need help with C. Im new to atmega and C and i try to create function "void check_password_input() { }" and AtmelStudio says warning "function declaration isn't a prototype" and i can't understand what it wants
[08:10:14] <tiblock> How to fix this?
[08:10:35] <tiblock> Google shows some big codes and complicated explanations
[08:12:24] <specing> it should work, what compiler do you have?
[08:12:41] <specing> maybe enable C99 or whatever it is that doesen't require (void)
[08:13:51] <tiblock> specing, i have no idea what compiler is there. And if it should work can i just ignore that warning?
[08:15:26] <specing> you should get some idea
[08:15:49] <salad> just change it to "void check_password_input(void)"
[08:16:22] <salad> or if you've enabled -Wall or something else -Werror=strict-prototypes then turn it off
[08:17:45] <dgriffi> some of the stuff that's legal for C99 doesn't make sense to me
[08:21:11] <specing> C doesen't make sense to me
[08:23:24] <tiblock> specing, what you use for atmel things?
[08:24:20] <specing> I don't use atmel things right now
[08:25:02] <specing> will use Ada though, when I get around to using atmel things again
[08:33:12] <tiblock> Another little question. I see example of turning off led "PORTB &= ~(1<<PB0);" and am i understand this correctly? ~ is NOT and im not sure what it does. For example "(1<<PB0)" is 00000001 so is "~(1<<PB0)" is 11111110? Is it inverts is? Then when &= comes it will set that bit to 0 because 0 AND 1 is 0. And all 1 will stay 1.
[08:33:25] <tiblock> so ~00000001 = 11111110 ?
[08:34:16] <salad> ~00000001 is 11111110, PORTB & 11111110 will always have the last bit result in 0
[08:34:32] <tiblock> Thank you
[08:34:53] <salad> because for & (and) each bit has to be 1 in both values being compared
[08:36:53] <specing> lol C is so ugly
[08:40:44] <carabia> that's not really a c-specific thing.
[08:41:05] <salad> that's just how bitwise operations are.
[08:41:50] <carabia> salad, do you mind occasional tossing?
[08:41:57] <specing> I was speaking in general
[08:42:05] <salad> carabia: lol
[08:42:11] <specing> as it is pretty rare to see someone make functions for doing the above
[08:43:22] <salad> I dunno, I always found the concepts to be ugly and hard rather than the language.
[08:43:32] <carabia> functions for what? bitmasking?
[08:44:11] <specing> carabia: yes
[08:44:24] <specing> or in this case, for clearing a particular bit
[08:44:37] <carabia> not only rare but stupid
[08:44:37] <dgriffi> somewhat off topic... does anyone know of an android dtmf decoder app that's worth a damn?
[08:44:44] <specing> carabia: why so?
[08:45:01] <specing> why would it be stupid if it makes the code more readable?
[08:45:09] <salad> setting up defines for set bit, clear bit, looks kinda nice
[08:45:18] <salad> not my cup of tea but I can see the appeal
[08:45:22] <carabia> well i guess. would you inline it?
[08:45:26] <specing> salad: not defines
[08:45:27] <carabia> ??:D
[08:45:32] <specing> salad: functions
[08:45:48] <specing> carabia: I'd mark the functions for inlining, yes
[08:45:49] <salad> is this a subtle jab at arduino? lol
[08:45:58] <carabia> still sounds stupid
[08:46:04] <specing> carabia: why?
[08:46:53] <carabia> i don't know, just seems like readability can be thrown in as an excuse to skip learning key concepts
[08:46:58] <carabia> it's readability? for who? you?
[08:47:12] <specing> for everyone reading your program
[08:47:24] <carabia> okay. Then they should probably get familiar with bit shifting in any case.
[08:47:29] <carabia> and masking
[08:47:57] <specing> what does that have to do with spliting this into functions?
[08:47:58] <carabia> if you define ports sensible, it shouldn't be all that hard to read
[08:48:21] <carabia> i don't know, just seems overdoing it, but hey I guess that's just me.
[08:48:33] <carabia> maybe there's the ada way of doing things
[08:48:54] <carabia> with which i'm not familiar
[08:49:02] <specing> there is. Hard to read stuff is frowned upon in the Ada world
[08:50:14] <salad> if you're finding that hard to read, you're going to hit a wall with every other instance of bit masking you need to do
[08:50:19] <salad> which I find is generally a lot
[08:50:35] <carabia> hard is a fairly (read: extremely) subjective term
[08:51:29] <salad> you'll be hiding like 50% of your program behind stuff that makes it easier to read
[08:51:34] <specing> salad: "PORTB &= ~(1<<PB0);" does not make intent obvious
[08:51:46] <specing> clear_bit (PORTB, 0) does
[08:51:56] <salad> it turns portb pin 0 off?
[08:51:59] <salad> that's the intent?
[08:52:06] <specing> but how do you know?
[08:52:11] <specing> the intent is not explicit
[08:52:28] <carabia> led_port &= ~(1 << led_pin)
[08:52:35] <carabia> ;
[08:52:44] <salad> ^ that's how it works in the real world
[08:52:51] <salad> intent is far more clear
[08:52:56] <carabia> yes
[08:59:36] <salad> Trying to do some nop's inline, keep getting "asm undeclared", is there a header or something I need to include?
[08:59:50] <salad> have tried: asm volatile("nop"); and: asm("nop");
[09:03:14] <specing> inline assembly is not part of C
[09:03:30] <specing> (it is part of Ada though :D)
[09:05:07] <carabia> what about __asm__
[09:05:18] <salad> specing: https://en.wikipedia.org/wiki/Inline_assembler#Syntax_in_language_standards
[09:05:25] <salad> specing: it is.
[09:06:28] <salad> carabia: thanks :)
[09:07:09] <tiblock> Ooooh... I found a problem in my PCB. http://imgur.com/a/LtcbN There is no pull down resistor on button and pin randomly change states. What value of pull down resistor should be?
[09:07:09] <carabia> i guess it's using c99, change to gnu99 and asm should work too.
[09:07:19] <specing> salad: Interesting, I didn't know about that
[09:08:03] <carabia> tiblock: really not rocket science. drop a 10k and be done with it
[09:08:37] <salad> carabia: spot on, changed my makefile to gnu99 :)
[09:08:52] <tiblock> carabia, okay, thank you. Now my board will be little uglier than it was with randomly soldered resistor with wire
[09:09:26] <carabia> it's going on the underside, no-one will ever see
[09:10:22] <carabia> or you could just drill holes, w/e
[09:11:20] <tiblock> I will drill, there is ground for LEDs near button
[09:11:45] <salad> apparently ada doesn't have proper bitwise operations....
[09:11:58] <salad> it just has arrays of bools
[09:12:16] <salad> have fun with that one lol
[09:24:45] <specing> salad: sure it does
[09:24:53] <specing> Shift_Right, Shift_Left, ...
[09:47:44] <salad> specing: hah, stack overflow led me astray. seems everything else says it does :)
[09:54:53] <tiblock> How it called, when you press button but atmega registers two pressess because contacts inside button bounces up and down?
[09:55:15] <LeoNerd> bouncing
[09:55:41] <tiblock> Oh. That was predictable
[09:56:16] <LeoNerd> My usual solution to that is a timer ticker
[09:56:34] <LeoNerd> interrupt on pin change that starts a ticker, when that expires to zero then I read the PINx register to get the button state
[09:56:56] <salad> why not just a pullup resistor?
[09:57:04] <tiblock> Ah i don't get it. My counter variable is 0 when i start atmega and when i press button it do count++ but after first press there is count=2 instead of 1.
[09:57:08] <salad> the internal one I mean
[09:57:32] <LeoNerd> Resistor won't help
[09:57:38] <LeoNerd> This isn't about the line floating when it's not driven
[09:57:49] <LeoNerd> It's about the physical bounce of the metal contacts in a button
[09:58:47] <salad> yeah I'm getting things mixed up
[09:59:32] <tiblock> Ooooh... I have "int PWD_CURRENT = 0;" and "int" is not UNSIGNED int, right? So its "1"?
[09:59:53] <tiblock> Or wait...
[10:01:37] <LeoNerd> If you're not debouncing your button press, it's probably that
[10:02:02] <tiblock> Nevermind, i had for() problem where i<=PWD_CURRENT so it blinks on 0=0. I am counting blinks to know whats is inside variable. That is some professional debugging
[10:12:48] <Tom_L> you could use a small cap or delay in software for bounce
[11:12:03] <Lambda_Aurigae> I usually debounce in hardware with a capacitor
[11:12:54] <LeoNerd> I prefer the software approach because it's much easier to change the delay time later
[11:13:45] <Lambda_Aurigae> each project to its own, eh?
[11:13:49] <Lambda_Aurigae> have done both.
[12:59:30] <sebus> carabia I ran fatfs with 28,224MHz osc :D It plays well 8 bit pcm stereo with ad7528 d/a :D
[12:59:31] <sebus> yay
[12:59:50] <Thrashbarg> neat
[13:00:34] <sebus> now time to implement vgm library for audio chips / other raw streams
[13:26:48] <carabia> sebus: fatfs works, yes
[13:30:01] <carabia> sebus: what's the sampling rate?
[14:57:45] <sebus> carabia 44,1kHz 8 bit stereo
[15:01:05] <sebus> Playback done in isr alike it was done with covox stereo on lpt (since this ic is from soundcard I used back in 90s)
[15:05:08] <Jartza> oh covox
[15:05:11] <Jartza> brings back memories
[15:22:48] <carabia> NEEDS_BETTER_SAMPLES
[15:24:12] <carabia> isn't 44.1 kHz overdoing it a bit as you're only having 8b samples anyway? \:D/
[15:24:42] <carabia> it's like hi-lo-fidelity?
[15:25:39] <sebus> carabia just for testing throughput. :D I have somewhere also 16 bit r-2r ladder dac8822
[15:27:17] <sebus> but that one needs way more pins
[15:27:24] <carabia> of course, haha
[15:28:37] <carabia> you'll get (somewhat) better performance if you keep data on the card defragged and stream off it without fatfs. You can still have a FATwhatever filesystem on the card.
[15:28:55] <Emil> carabia: eh,
[15:29:05] <carabia> Emil: yes
[15:29:11] <Emil> carabia: no
[15:29:14] <carabia> Emil: yes.
[15:29:43] <Emil> carabia: no. 44k samples at 8 bit is much better than a lower eate
[15:29:46] <Emil> rate*
[15:29:50] <carabia> oh that, yeah
[15:30:26] <carabia> thought you meant the other thing.
[15:30:30] <Emil> Nah
[15:30:43] <Emil> My 48kHz 8 bit pcm mic works pretrt well
[15:30:48] <Emil> avr mic*
[15:31:00] <carabia> i'd imagine it's alright
[15:32:18] <Emil> pushing data through a 1Mbaud serial connection :D
[15:32:46] <Emil> I can only imagine the quantisation noice it is experiencing ":D"
[15:33:18] <carabia> if it's worth doing, ... it's worth doing it wrong
[15:34:13] <Emil> still need to figure out an amplification circuit for it, perhaps even with agc
[15:36:28] <sebus> 22:00:23 <carabia> you'll get (somewhat) better performance if you keep data on the card defragged and stream off it without fatfs. You can still have a FATwhatever filesystem on the card. - yup. Agree. That's why I always format / defrag sd card on my phone before adding stuff like music or something. WP here.
[15:38:54] <carabia> well yea... depends on the driver, sd cards never even stream consecutive sectors back to back
[15:39:39] <carabia> the phone's driver has to do a fat lookup between clusters, though, cause that's the spec
[15:39:56] <carabia> but if you keep it defragged and you know clusters are back to back, you can just stream.
[15:40:31] <carabia> or well, there's so much ram that they probably do a cluster chain lookup before actual reads...mmm
[15:41:43] <carabia> I think fatfs can do that too. But you can still shave some overhead off of it not terminating reads between clusters.
[15:43:30] <carabia> but then again for big files you're going to end up with a cluster table of hundreds of bytes... depends on the cluster size. I think windows uses 32k by default
[15:44:01] <sebus> carabia that would need a bit more RAM in mcu :<
[15:44:26] <PoppaVic> suffering either form of FAT is a huge cost on the MCU
[15:45:24] <Evidlo> tiblock: 1K to 10K
[15:45:29] <Evidlo> oh, scrollback
[15:45:44] <tiblock> happened to me
[15:47:33] <carabia> sebus: yeah I think you can turn it on/off in fatfs. I think he calls it FASTSEEK. No idea how big tables it generates and can you set a limit for it or something.
[16:03:25] <sebus> Nah, I've compiled minimal version just to fit it in mega8 chip and test it. Maybe i'll move my project to atmega328 if I ran out of flash (or RAM :D)
[16:05:53] <carabia> 328 only doubles the ram right? go for a 1284
[16:07:37] <PoppaVic> I could go for a big, fat avr with code that runs outta' RAM
[16:09:38] <Emil> PoppaVic: which avrs could execute from ram?
[16:09:52] <sebus> carabia 1284? I can get lpc2148 in same price... 512k flash, 40k ram
[16:09:55] <PoppaVic> Emil: none, that I know of, but it'd sure be nice
[16:09:56] <Emil> None of the mega or tiny series can and I don't think many xmegas can either
[16:10:38] <PoppaVic> at worst, you could develop on them easier; at best you could be using external flash or sdcard for storage and bring in overlays
[16:10:46] <sebus> okay, maybe m1284 is €3 cheaper... But still.
[16:11:02] <Emil> 3€ is a fuckton!
[16:12:18] <sebus> carabia yep, 328 has 2kB of RAM and 32k of flash
[16:12:27] <PoppaVic> sebus: for a one-off, you can certainly buy the pig
[16:12:43] <sebus> <PoppaVic> I could go for a big, fat avr with code that runs outta' RAM
[16:12:52] <sebus> meh http://wstaw.org/m/2016/10/06/ayy.jpg I would go with this :D
[16:13:07] * sebus tried to write some dummy code on z80
[16:13:12] <PoppaVic> I've about a dozen 328P, and a single 1284; one 2560 and some mini-pros
[16:14:04] <sebus> I was happy when avrs were way cheaper than ARM stuff, but now...
[16:14:24] <Emil> Hmm
[16:15:01] <Emil> I think 8 cycles overhead could be managed to do an assembly emulator for avr
[16:15:12] <Emil> 8 instructions*
[16:20:17] <sebus> okay, bed time... Cya
[16:20:18] * sebus zzz
[16:21:43] <sebus> also, Emil... why? Just to go above limits with regular avr? Yeah, it would be nice to run code from ram...
[16:22:37] <Emil> sebus: because one can
[16:23:02] <PoppaVic> well, my point is: the can certainly flip a bit and create AVR's with ram instead of flash
[16:24:09] <PoppaVic> in fact, I know a guy dicking with a modern AVR where the bootloader is absolutely hard-coded.. You can signal it to run from outside and it ALWAYS WORKS - otherwise you can ignore it and write bootloaders, etc.
[16:24:18] <PoppaVic> although, I think it's an arm core
[16:24:45] <theBear> heh, just dickin about witht he sucker eh
[16:24:53] <theBear> wait what ?
[16:25:00] <theBear> avr/most flash is way too slow for ram
[16:25:42] <theBear> old xmega (from memory) series, probly other more current ones too (they were 1st gen 90s series age) could use external ram "natively" if you wired it up
[16:25:42] * PoppaVic sighs
[16:34:29] <carabia> theBear: I would think some of the current-line xmegas too have controllers for external memory
[16:35:04] <carabia> I think they even have a dram controller for sdram. so you're not just limited to sram
[16:36:15] <carabia> but then again they're a jo... xmegas!
[16:42:53] <theBear> no doubt, i just haven't had a reason/chance/inclination to lookup the new series, still got enough old ones and a couple new fancies for special occasions to keep me happy for years :)
[16:50:48] <Emil> theBear: the at series
[17:06:03] <theBear> err, i thougth they was all called atsomething, like, every avr8 arch ever made ever
[17:07:01] <theBear> basically since tiny meant more than a single useless 8pin thing, and there was more than 1 set (8/16/32 from memory, largely meaningless numbers here) of mega's out there
[17:07:17] <theBear> at90s2313 hmmm, maybe that does look wrong now you mention it :)
[17:07:30] <theBear> heh, all those years, i was blind, but now how i can see :)
[17:08:09] <Emil> theBear: :D
[17:08:44] <Emil> It was also one older mega series, the 644 from an older age I think that could use external ram
[18:13:36] <theBear> mmm, good membering, assuming it was ya know, good membering :)
[18:18:59] <Evidlo> if `C` is a constant number, am I likely to save any cycle by unrolling `X*C` as a series of bitshifts and adds?
[18:19:31] <Lambda_Aurigae> possibly.
[18:19:56] <Evidlo> under what conditions?
[18:20:13] <Evidlo> can't the compile optimize this easily?
[18:20:13] <Lambda_Aurigae> well, the mega series does have a hardware multiplier.
[18:20:27] <Evidlo> this is on an attiny85
[18:20:30] <Evidlo> no multiplier
[18:20:45] <Lambda_Aurigae> one could test and see what happens.
[18:21:11] <Lambda_Aurigae> complex maths on an attiny is not going to be exactly speedy.
[18:21:35] <Lambda_Aurigae> are you talking single byte unsigned integer stuff or multiple byte?
[18:21:46] <Lambda_Aurigae> integer, fixed point, floating point?
[18:22:52] <theBear> multiply by nice powers of 2 numbers, then you can just shift em on a hot-wired bus or maybe to a latch with one side shifty-wired :)
[18:23:06] <theBear> math copro, designed by theBear ? yesplease !
[18:23:39] <theBear> it's err risc, it's power is it's simplicity ('sif that was a good sales line <grin> poor alpha and ppc)
[18:24:01] <Evidlo> I need to multiply two int8's and get the most significant bits
[18:24:53] <Evidlo> If I remember correctly: (int8_t)((int16_t)integer_a * (int16_t)integer_b) >> 7)
[18:28:59] <specing> you can save a few adds, but not shifts
[18:29:15] <specing> 9-16 cycles.
[18:32:49] <specing> If I am looking for relay boards, what is safe enough to be left powered on while I'm away?
[18:33:12] <Evidlo> relays aren't really a fire hazard
[18:33:16] <specing> the vast majority of 8ch boards on ebay are $6+ with songle relays
[18:33:38] <specing> with a few that seem to be without manufacturer markings
[18:36:12] <theBear> int 8's eh ? can you just pretend you multiplied them to save wasting a whole 6or 7 extra bits ?
[18:36:27] <theBear> or multiply "inline" if yer know what i mean
[18:36:46] <specing> what
[18:37:05] <specing> oh it was meant for Evidlo
[18:50:21] <Evidlo> I just tested it and I'm getting a weird result. I generate a 5µs pulse, then toggle after bitshift+add and toggle again after equivalent multiplication. The times between transitions are always the same length, even if I comment out one of the computations. https://dpaste.de/3Xuf
[18:50:28] <Evidlo> specing:
[18:50:55] <Evidlo> Maybe they're both getting compiled out? I don't get any warnings about cof1,cof2,cof3,cof4 being unused
[18:52:58] <specing> thats some pretty weird code you have there
[18:54:09] <specing> you are supposed to shift "data" before adding it
[18:54:20] <specing> oh you are
[18:54:36] <specing> but using right shifts instead of left
[18:54:45] <specing> if you want to get the MSB
[18:55:19] <Evidlo> I'm multiplying `data` by integers
[18:55:25] <Evidlo> so I use left shift
[18:55:42] <specing> why is data 16 bit when samples is 8 bit?
[18:56:35] <Evidlo> because the multiplation overflows an int8
[18:56:52] <specing> but you are only interested in the MSB
[18:57:31] <specing> take a new sheet of paper and do it on there, by hand
[18:57:55] <Evidlo> before we get into that, why is the timing exactly the same regardless of what I comment out?
[18:59:03] <Lambda_Aurigae> look at the assembly output from the compiler.
[19:02:57] <Evidlo> I don't see any `lsr`s in the asm output
[19:04:11] <Evidlo> and here's the scope: http://imgur.com/9A08pcT
[19:07:30] <Evidlo> specing: here's working code: https://dpaste.de/qyLs I trying to go back to normal multiplication to see if there is a significant speed loss
[19:08:06] <Evidlo> I just upped my samplerate, so I'd rather not type out all the bitshifts again
[19:13:37] <carabia> gawd dayumn that's a lot of lines
[19:14:15] <specing> < Evidlo> if `C` is a constant number, am I likely to save any cycle by unrolling `X*C` as a series of bitshifts and adds?
[19:14:24] <specing> neither of the operands seems very constant to me
[19:16:29] <Evidlo> specing: If C is hardcoded and X is a sampled value
[19:16:43] <Evidlo> I'm doing a fourier transform, so C is a precomputed value
[19:17:42] <Evidlo> the code I pasted is functional, so I'm not crazy. I just don't understand why the stripped down example seems to compile out that computation
[19:19:06] <specing> I don't see any precomputed values
[19:19:43] <specing> also why is the if in the same indent level as the while(1)?
[19:22:26] <Evidlo> It got messed up during the paste.
[19:23:34] <Evidlo> All those bitshifts are just four 8 element dot products with the data vector
[19:24:30] <Evidlo> This is what is actually being computed: https://sites.google.com/site/wayneholder/attiny-4-5-9-10-assembly-ide-and-programmer/bell-202-1200-baud-demodulator-in-an-attiny10
[19:33:53] <inflex> impressive stuff for a T10
[19:37:52] <Lambda_Aurigae> talk to Jartza...he has done similar stuff.
[19:40:38] <Evidlo> I actually did about 1.5 yrs ago when I started this project
[21:16:15] <carabia> that's one long project
[21:26:12] <carabia> I wonder what the actual fuck is the reasoning behind mcp providing some application note examples as windows executables with some kind of an installer (????)
[21:28:25] <Emil> carabia: a) managers
[21:28:29] <Emil> b) managers
[21:28:32] <Emil> c) managers
[21:28:33] <carabia> wait
[21:28:33] <Emil> pick two
[21:28:34] <carabia> let me guess
[21:28:47] <carabia> now you ought to get this...
[21:28:57] <carabia> kanada?
[21:29:10] <Emil> It was actually d) managers!
[21:29:17] <Emil> also kanada
[21:29:24] <carabia> kanada rules.
[21:30:00] <Emil> carabia: hmmm
[21:30:19] <Emil> Not sure if relevant to you
[21:30:28] <Emil> but it is relevant to the discussion!
[21:30:30] <carabia> I mean, the end result is actually just some files with example code extracted...
[21:30:30] <Emil> https://www.youtube.com/watch?v=SnWc0_ddn04
[21:31:39] <carabia> this is always relevant regardless of the occasion.
[21:32:31] <Emil> https://www.youtube.com/watch?v=a1563PjaycI
[21:36:49] <carabia> i approve this.
[21:42:00] <Emil> carabia: https://www.riemurasia.net/video/paasiainen-lahestyy-taas/140708
[21:42:20] <Emil> Was deleted from YouTube but it is a classic
[21:51:57] <carabia> haha, that's a good one. i was expecting the cask to be filled with umm... kilju. I for one am not aware of an english counterpart for that
[22:28:59] <Emil> carabia: anycase, you are a Finn, right?
[22:46:45] <Emil> What's the point of the prescaler with i2c?
[22:47:15] <Casper> slow down the communcation speed
[22:47:45] <Casper> simmilar to UBR on uart
[22:47:56] <Emil> Casper: my point is that
[22:47:58] <Emil> To achieve 400kHz I could do prescaler 1 and twbr 12 or prescaler 4 and twbr 3
[22:48:09] <Emil> Is there any difference between them?
[22:48:43] <Casper> not sure, didn't even looked at i2c yet
[23:03:52] <carabia> Emil: yeah
[23:05:09] <Emil> carabia: where from?
[23:13:23] <carabia> helsinki
[23:13:34] <Emil> carabia: in Aalto?
[23:13:52] <carabia> past my school days
[23:14:04] <Emil> You were in tkk?
[23:14:23] <carabia> yeah, way back when.
[23:14:35] <Emil> EST?
[23:14:54] <carabia> oh my god, how'd you know
[23:15:00] <Emil> :DDD
[23:15:05] <carabia> you hki?
[23:15:24] <Emil> Wait you weren't sarcastic :D
[23:15:34] <Emil> Aalto EST represent!
[23:15:53] <carabia> how's that working out for you
[23:16:23] <Emil> Okayish, I have no interested in the physics courses
[23:16:52] <carabia> ha, i've heard some bad things of former people doing softwarey-things over there
[23:17:00] <carabia> of, from, whatever
[23:17:17] <Emil> Whatcha heard?
[23:17:31] <carabia> i'm not really sure what's the matter but they just generally seemed to dislike it :)
[23:18:44] <Emil> I mean, it is interesting stuff but not really motivated for it
[23:19:04] <carabia> well, mind you i never finished my studies
[23:19:19] <Emil> Developing devices, prototypes and services is way more fun
[23:19:42] <Emil> carabia: hmm, if it was "way back" then you have unlimited study rights ; )
[23:20:23] <carabia> well, not in the stone age. I'm not going to push daisies anytime soon. Also, I have roundabout zero interest in acquiring a degree
[23:21:03] <Emil> carabia: hmm, so you came into Aalto after 2004 or something like that
[23:21:26] <Emil> But eh, having titles is fun and they get you better pay
[23:22:06] <Emil> carabia: who do you work for? Always interested in finding out about possible excursion places
[23:23:12] <carabia> hmm. I might disclose some for an orderly fee.
[23:23:55] <Emil> If you ever come to Niemi and Elepaja you might get a free Cola
[23:23:59] <carabia> but i have my anonymity to maintain, god forbid things i have said over here!
[23:24:37] <Emil> What happens on IRC stays on IRC
[23:24:50] <carabia> i wish
[23:33:48] <carabia> on another note: breakfast or no.
[23:34:12] <Emil> Hmm
[23:34:16] <Emil> To sleep or to not
[23:37:50] <carabia> seems like a reasonable question
[23:53:11] <carabia> good morning _ami_ !
[23:54:55] <_ami_> carabia: hi, morning. :)