#qi-hardware IRC log for Sunday, 2013-03-17

kyakviric: i just submitted a patch for "mark all as read" button. For now it's per feed. If it goes well, i'd like to have the same button on the main page to mark all items in all feeds as read :)09:08
virickyak: perfect! :)09:49
viricI'll check it09:49
kyakviric: i submitted a little something to improve the visibility of feeds that have new items12:07
kyakviric: for UI, what do you think about having something like "[12/53]" instead of (Unread: 12; Total: 53)?12:09
sb0wolfspraul, I don't expect anything from hackable devices anymore... company is a mess, key people left, etc. - actually I should remove the link from milkymist.org, which is now 404 and there isn't M1 on their website anymore...13:39
sb0wolfspraul, btw are you getting wolfgang@sharism.cc emails, even when the site is down?13:45
wolfspraulyes, I should get them13:49
wolfspraulok, I see about h:d. well then :-)13:49
lekernelso I direct him to sharism.cc?13:50
wolfspraulyes please13:50
lekernelok, thanks!13:50
lekernelbtw I just ordered a papilio pro to try out fpgatools13:50
wolfspraulI haven't done any commits in 2-3 weeks I think, urgh... but that is encouraging so I shall continue13:51
wolfspraulI need to finish some urgent paperwork first though13:51
wolfspraulonce that is settled there is more time for fpgatools again13:51
wolfspraulthe next item on the todo list was block-ram13:52
virickyak: fine14:06
virickyak: I'm traveling these days; I hope at the evening take a look14:06
kyakviric: sure, fine14:19
kyakviric: heh, some of my feeds easily get >300 items per day. You create a separate file for each item - multiply it by two for a separate file for the "read" status. This can get pretty insane soon15:43
kyaki get 600 items per day in average, maxing to 900 (according to google reader statistics)15:44
kyaki don't like the fact that my hard drive would get 1000+ new files every day15:45
viricwhat's wrong with the files?15:50
viricI didn't want to implement a sync protocol15:50
lindi-at least ext3 is very slow at removing files15:50
viricthat's the point in using files: unison15:50
viricI'm not sure how to handle 1000+ rss posts every day15:52
kyakfor example, by using a database15:58
kyakmaybe one per feed15:58
kyakbut two files per one post? that's too fat...15:58
kyakImplementing a database now would be too destructive. But at least you could rename the same file to *.read.16:01
kyakthus having two times fewer files16:02
kyaki'm starting to realize how different our use cases are :)16:02
hellekinhttp://unvrso.ec/0004USK First Ecuadorian satellites, coming to your neighborhood orbit next May :)17:00
mwcampbellPardon the newbie question, but what input method(s) does the Ben NanoNote have?18:17
mwcampbellAlso, what are the dimensions and weight?18:24
mwcampbelland typical battery life18:24
mwcampbellthe web page (at least the English one) is a little short on info18:24
mwcampbellnever mind, found more info18:26
mwcampbellIs the Ben NanoNote still being manufactured?18:32
kyakit can have whatever input methods you configure it to have. You can read here http://en.qi-hardware.com/wiki/I18n about what's already included in the default software18:36
kyakbasically, it's russian input in linux console and qt4 applications, and a bunch of "weird" input methods supported by kinyin18:38
larscmwcampbell: well, it's still being sold18:39
mwcampbellI'm sorry, I was unclear. I meant to ask what input devices. Looks like it has a small ekyboard.18:40
kyakis full-size keyboard via ssh considered an inputs device? :)18:41
mwcampbellI'm guessing that the keys on the built-in keyboard are quite small.18:43
mwcampbellHere's a crazy hardware hacking idea. I wonder if an 8-dot braille keyboard would be more efficient on a device as small as the NanoNote18:43
mwcampbell8-key, I mean18:43
mwcampbellof course, the user of such a device would need to know how to enter braille, though not how to read it18:44
kyakthe keys are bigger than those on my cell phone18:44
mwcampbellah, OK18:44
kyakyou don't get to type with 10 fingers of course18:45
larsctwo thumb typing18:46
kyakthe front picture shows "Ben on hand". Is it enough to get an idea about the keyboard size?18:48
mwcampbellFrom the picture, it looks like the Ben has a graphical display, but I haven't yet found any info about the GPU.18:50
mwcampbellIs it just a frame buffer?18:51
larscit's just a frame buffer18:51
larscno hw acceleration18:51
larscalthough the cpu has some simd instructions18:52
mwcampbellI read that the hardware design is copyleft. Does this include the CPU itself?18:55
larsconly the pcb and case18:57
mwcampbellThen I wonder why Qi Hardware chose a MIPS-compatible processor over a more powerful ARM-based one.18:58
mwcampbellThe Raspberry Pi has a more powerful processor and more RAM and is cheap.18:58
mwcampbellI'm not criticizing; I'm just curious.18:58
larscthe nanonote is much older than the rpi18:59
whitequarkmwcampbell: raspberry pi is mainly cheap due to broadcom's deal18:59
whitequarkwell, you won't be surprised that broadcom would provide cheap processors to itself.19:00
mwcampbellSo I'm trying to decide if the NanoNote still occupies a useful niche, and whether I should buy one. If one looks only atht epsecs, it's quite underpowered for its price ($149 on Sharism).19:03
mwcampbellBut I can see the value in a small device with a battery, a screen, a keyboard, USB, and audio, that's designed to run free software.19:04
virickyak: :) I'm not sure unison can handle renames19:05
viricbut I use to think that filesystems are good databases.19:05
whitequarkviric: but they don't (commonly) have transactions.19:06
whitequarkNTFS has them19:06
viricthey have some atomic operations.19:06
whitequarka database is made by Atomicity, Consistency, Isolation, Durability19:07
whitequarkjournalling filesystems provide C and D19:07
whitequarkand, sometimes, A19:07
viricsometimes databases are in files in filesystems19:08
larscwhitequark: why not I?19:09
whitequarklarsc: example of contrary?19:09
whitequarkviric: you said that filesystems are good databases ;)19:10
viricfor my broad understanding of 'databases' :)19:10
whitequarkwell, some people think of MongoDB as of a database. so maybe filesystems are just bad databases.19:10
larscwhitequark: well it gets problematic I guess if two transactions work on the same set of files19:11
whitequarklarsc: that is the point of isolation.19:11
whitequarkthis also gets in the way of building real software.19:12
whitequarksymlink attacks, etc19:12
paul_boddiemwcampbell: See http://lists.en.qi-hardware.com/pipermail/discussion/2011-September/008960.html for some background on the Ben hardware.19:14
mwcampbellpaul_boddie: thanks19:14
whitequarkpaul_boddie: re shedskin. yes. there is no practical value in building a general dynamic-to-static compiler for dynamic languages without homomorphic data storage structures.19:15
whitequarkon the contrary, I'm building a compiler for static language which tries to look like a dynamic language with some interesting tricks19:16
whitequarklike transparent generalization/specialization of parametric types and ad-hoc typeclasses (aka duck typing in static languages).19:16
paul_boddiemwcampbell: As far as the input devices are concerned, it's really only the keyboard. There's no pointing device.19:17
paul_boddiemwcampbell: Longer answer: if you can find a USB Host device to plug into the USB port (or maybe some kind of SDIO device to plug into the microSD port) that can control the Ben, and then get drivers written for those devices, then that might be a solution.19:18
paul_boddiewhitequark: Well, you mentioned Starkiller, so I had to point out Shedskin because it is pretty much what Starkiller was advertised to be. Of course, Starkiller was never released publicly.19:19
mwcampbellI don't need a pointing device; just wanted to know more before I buy.19:19
whitequarkpaul_boddie: wasn't it? I have seen a paper.19:20
mwcampbellWhat concerns me more is that I haven't seen any news newer than 2010 on the English Qi Hardware home page. Has Qi Hardware already given up on the NanoNote?19:20
paul_boddieAs someone who bought a Ben only last year, knowing that the average smartphone is more powerful (faster CPU, more RAM, better screen, more convenient connectivity, built-in sensors...), my motivation was to get an open device that encourages experimentation. Thus, I've been playing around with the 8:10 port and Arduino-level electronics.19:22
paul_boddiewhitequark: I met the author at a conference in 2005 which was already a year or more after he presented it, and although he seemed like a nice and helpful guy, he seemed a bit jaded with answering questions about it and seemed to have "moved on" from it.19:23
whitequarkpaul_boddie: um, yes? it was a research project after all.19:23
whitequarkhe got his ph.d or whatever, that was the whole point19:23
paul_boddiewhitequark: I got the impression that the code was rather "proof of concept" and there were probably lots of areas that needed filling in, and my impression was that he wasn't interested in doing that any more.19:24
whitequarkmost of academic work is like that19:24
whitequarkhe didn't really need the result of his work. he needed a degree ;)19:24
paul_boddieI also don't think it helped that every time someone does a project like that, lots of people in the Python community whine about it not supporting every last stupid feature introduced into Python since 2000.19:25
whitequarknice guy... I don't think so, actually. his work is heavily based on Ole Agesen's thesis--he didn't really improve it much, although he did several trivial things--and yet there was a lot of very disrespectful statements about said Ole Agesen and his work in his thesis.19:25
whitequarkI think it's the only paper I have ever read written in such a style.19:25
paul_boddieSo, any motivation to make a usable solution just wasn't there, and so he called it a day and moved on, I guess. It's also possible that MIT messed him around with the copyright, but I wouldn't know.19:26
whitequarkpaul_boddie: it isn't really possible to make a 'usable' solution, or what the Python community would deem as one, for the problem of compiling generic Python code to C++19:26
paul_boddieWell, I meant that he was fairly reasonable in person, but I do remember that his presentations were a bit provocative. Maybe he backed away from the whole thing after realising he couldn't deliver what he had promised.19:26
Action: whitequark has also observed that the thesis was likely written with a thesaurus in the other hand. It wouldn't otherwise explain pervasive--several per page--and unnecessary use of words I don't know.19:28
paul_boddieShedskin, on the other hand, does a decent job of what it claims to do, and I think that the thesis connected to it is probably more informative. If I remember correctly, it builds on (or references) work by a guy called John Plevyak.19:30
whitequarkJohn Plevyak, Andrew A. Chien: Precise Concrete Type Inference for Object-Oriented Languages. OOPSLA 1994: 324-340 ?19:31
whitequarkoh, yeah, I have read it19:33
paul_boddieNot sure. I didn't actually read any of the papers. ;-) But I did discuss some of this with the author of Shedskin because I was also looking at static analysis.19:33
whitequarkI have independently rediscovered most of the results in it, and using them heavily in my work19:33
whitequarkthough his Function Splitting technique, as I understand it, is less efficient than CPA19:33
whitequarkOle Agesen's thesis was written later than Plevyak's article.19:34
paul_boddiemwcampbell: We've been discussing the situation with the NanoNote on and off on the qi-hardware discussion mailing list, but I'm not sure that there's any momentum as far as the hardware roadmap is concerned.19:34
whitequarkwhat I don't believe in his work at all is Container Splitting19:34
whitequarkit only works as expected for trivial inputs.19:35
paul_boddiewhitequark: I think Plevyak had a project on SourceForge to apply his more recent work to Python, perhaps, but I don't think it went anywhere.19:35
Action: whitequark shrugs19:36
whitequarkI'll explain19:36
whitequarkthere are two problems with trying to infer the type of the container19:36
whitequarkfirst, it introduces "action at the distance". a type inferencer can pass a type through a very long chain of functions, for example19:37
whitequarkbut so far (when you only infer types of functions), it is not much of a practical problem as you can pinpoint the problematic part and trace (manually) where the type came from19:37
whitequarkhowever, if you infer types of the container, you cannot. it was inferred at some point in the past and you don't really know which.19:38
whitequarksecond, it has a lot of edge cases like tuple keys where different types parts of the tuple type get inferred from different parts in the problem19:38
mwcampbellwhitequark: Couldn't the inferencer be instrumented to tell you how it inferred the type?19:39
whitequarkmwcampbell: it could, however, these traces are mostly unreadable19:39
whitequarki.e. Haskell's error messages are often hard to parse.19:39
whitequarkthe third and most important problem is that Python promises you heteromorphic containers19:40
whitequarkand you won't get any when you're using such a compiler19:40
whitequarkunless you use union types, that is, which come with their own set of problems19:40
whitequarkmost important of which is the danger of inferring a correct, but useless, union type of any existing type in the problem, for every expression in your program.19:41
mwcampbellThat last part makes sense to me.19:41
whitequarkmwcampbell: that is why there can not be a compiler of generic python code.19:41
mwcampbellIt seems to me that the most sensible way to get monomorphic containers in a language like Python would be to add type annotations of some kind.19:41
mwcampbellEither in the language, like in Python 3, or in docstrings19:42
whitequarkmwcampbell: you might like http://whitequark.org/blog/2012/12/06/a-language-for-embedded-developers/19:42
paul_boddieA few years back, when I was first talking to the Shedskin author about this, I was experiencing some difficulties with a solution I was developing, and he then introduced me to the notion of data polymorphism which conveniently put a name on a problem I was having trying to specify every last aspect of any given program.19:42
whitequarkpaul_boddie: an observation which might help you:19:42
whitequarkin object-oriented dynamically typed systems data polymorphism can almost completely be divided into two categories:19:43
paul_boddieI think the whole experience demonstrated why in languages like OCaml, you end up having to declare your structures' types even though the language supports type inference.19:43
whitequark1) subtyping polymorphism, which we fortunately know how to compile (C++ vtables)19:43
mwcampbellwhitequark: I've been thinking lately about subsetting or otherwise adapting dynamic languages for ahead-of-time compilation. I never thought my thoughts on that would dovetail with a discussion on this channel. :)19:43
whitequark2) interface polymorphism, which we also know how to compile, more or less19:44
whitequarkit gets more compilcated when interface polymorphism appears in the form of duck typing and/or there is a need to be able to present a stable ABI19:45
whitequarkbut I think I've solved that19:45
whitequarkmwcampbell: there is a channel ##foundry and also a mailing list.19:45
whitequark(the name of my compiler.)19:45
whitequarkit can infer types for, and compile fib: https://gist.github.com/whitequark/2d1d44ed5d97ddc9c93319:46
paul_boddieMy interests have probably moved fairly generally in the direction of interfaces, or at least have given me an appreciation for them and why they exist.19:46
paul_boddieAnyway, I'm sure we'll hear more about this later. Have to go.19:50
mwcampbellIf there were a NanoNote-like device based on the completely unencumbered LM32 architecture, I'd buy it now20:07
mwcampbellIn the meantime I guess I can show Qi Hardware my interest in the concept of a completely free pocket computer by buying the Ben and finding something useful to do with it20:10
mwcampbellThe Ben has no moving parts (e.g. fans), correct?20:18
mwcampbellWell, that eliminates one possible cause of buyer's remorse. :)20:26
mwcampbell(I don't like noisy fans)20:27
mwcampbellHave any other operating system kernels been ported to the Ben? Or any toolchains for writing applications that run on the bare metal?20:40
mwcampbellIt seems to me that a general-purpose OS with preemptive multitasking, like GNU/Linux, is overkill for a relatively underpowered device like the Ben20:40
mwcampbellI used to hack in assembler on an old Apple IIGS, even learning how to directly manipulate the graphica framebuffer and some other hardware. Maybe a completely open device like the Ben will inspire me to do that kind of hacking again20:42
uncloudeddoesn't seem that way to me.  doesn't Linux still run on a 10 MHz 386 with 2 MB of RAM?20:43
mwcampbellDoes it? I don't actually know.20:43
uncloudedI just powered up my Ben.  it's using 13MB after I stopped mpd, although it's seems that I've got ntp running on there too20:45
uncloudedas for the CPU power, it plays transcoded video faultlessly, which is pretty impressive20:45
mwcampbellYou're using it as a portable music player?20:45
uncloudedyes, music and video player for my little one20:46
mwcampbellah, nice20:46
uncloudedah, it's running dropbear ( SSH) too, hence the high RAM usage20:46
mwcampbellDo you know how long the battery lasts whe ndoing continuous audio playback with the screen turned off?20:46
uncloudedno idea.  the only time I've ever run the battery out is when I forget to turn it off.  I think 10h might be right20:47
mwcampbellIt doesn't have a built-in speaker does it?20:47
mwcampbell(I just ordered my Ben)20:48
uncloudedand if you want to play with graphics next to the metal, /dev/fb0 is waiting for you20:48
uncloudedyes, mono20:48
mwcampbelloh, nice20:48
uncloudedalthough SDL will probably give you an easier ride for using the framebuffer20:48
mwcampbellI might use it for listening to audio books then20:48
mwcampbellI mean, it would be an expensive audio player if that was all I planned to do with it20:49
uncloudedit's a cute little device.  I only started appreciating how good the keyboard is after using a few physical phone keyboards20:49
mwcampbellGood to know it's well built.20:50
uncloudedbe advised of the strange arrangement of pixels in the LCD though.  you'll never notice when playing video but small fonts can look a bit fuzzy20:50
mwcampbellBecause I'm impatient, can you please find out if it runs espeak (a speech synthesizer) fast enough for real-time text-to-speech?20:51
uncloudedI'd never built OpenWrt from scratch before the Ben.  I'd recommend it.  It's easier than you might think and empowering20:51
uncloudedI wouldn't have a clue, although if an Amiga 500 can do it then then Ben ought to be able to20:53
mwcampbellI'll wait until I get mine then20:53
uncloudedit can also run a C64 emulator if you're so inclined, although it doesn't cope well with games that require lots of per-pixel scrolling20:55
mwcampbellAn Apple II emulator would be more to my liking.20:55
uncloudedand of course you should only run games that you already have a license to ( and let's face it - why would you want to run any others since it's for nostalgia anyway)20:56
uncloudedperhaps you could port an Apple II emulator if one is not already packaged?20:56
mwcampbellI don't think I want one that bad.20:57
mwcampbellI do have a couple of possible projects in mind20:58
uncloudedit might not even be much work if the emulator uses SDL20:58
mwcampbellI'm pretty sure I've seen one that does20:59
mwcampbellAssuming espeak works, my first project will be a talking audio player and text file reader.21:00
whitequarkunclouded: (linux) tried that a few years ago with 8MB 38621:03
whitequarkdidn't run but could also be dead hardware21:03
whitequarktried also 486 with 24MB21:03
virickyak: ok all applied :)21:03
virickyak: thank you for the patience21:03
whitequarkit won't detect the IDE drive21:03
uncloudedshame.  I wonder why.  I would have thought that bog-standard access to the AT task file would have been left in Linux21:06
whitequarkAT task file?..21:08
whitequarkI've no idea what you're talking about21:08
whitequarkthough I don't really want to know21:08
mwcampbellCan anyone here tell me what I need to buy to add WiFi to the Ben? It looks like it can be done via an SDIO card21:10
whitequarkmwcampbell: to my knowledge, there is no way to.21:10
mwcampbellI'm glad I just bought my Ben. I can't speak for other software developers, but I think I've been spoiled by the sheer power of PC hardware. It will be interesting to see what useful applications I can develop for the Ben.21:13
paul_boddiemwcampbell: http://en.qi-hardware.com/wiki/Ben_NanoNote_Wi-Fi21:52
paul_boddieI also saw that the legendary Xiangfu had a mobile wireless router running a custom OpenWrt build and providing "Ethernet over USB" to the Ben.21:54
rohwell.. you can use such a small wifi router providing ip via usb. sure.22:04
rohsomething along the lines of http://wiki.openwrt.org/toh/tp-link/tl-mr302022:05
rohbasic openwrt router, atheros soc, usb-host port. then run cdc-ethernet via that usb link to the ben22:06
paul_boddieYes, that's what I meant.22:07
kristianpaulpapilio pro, good! finally a new toy in the familly =)22:29
kristianpaulhmm werner still offline..22:44
--- Mon Mar 18 201300:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!