There is also another aspect to all of this. I like to solve complicated
problems. Using the third library can solve complex problems. But the
problems I'm usually interested in, is the problem that library has solved.
I often wonder how I could solve the same problem, only better. This is not
to say I go out there reinventing all the software out there. But it is me
realizing that I *can* do the same things, a lot of the interesting
problems already do. The truly interesting problems, to me, I tend to jump
into for months on end. Or at least a couple weeks :)

On Fri, Oct 9, 2015 at 1:04 AM, William Hermans <yyrk...@gmail.com> wrote:

> *This must be a fundamentally different philosophy.*
>>
>
> Indeed. I believe in a minimalist approach where possible.
>
> But at some point, I believe this could be considered "splitting hairs" on
> my behalf. As I do use Linux, and POSIX API calls, etc. But all those are
> standardized and very well documented. In the end, I get tired of wasting
> my time with projects, or libraries that go no where. Also, investing my
> time into learning such libraries, or projects, only to find that they're
> fundamentally broken, or really do not serve my needs. Tends to upset me. I
> do not write software to aggravate myself. I write software to achieve an
> end goal, and because I enjoy it.
>
> It also does not help that I am somewhat of a code snob. Meaning: It
> really bothers me when code is not well written, or readable. Well formed,
> simple, and easily readable code is how I prefer things. Short, concise . .
> . all that. Which is why when I hear people like Linus saying that a
> function should do one thing well, and only one thing, and should be less
> than 3-4 pages long . . . I tend to laugh to myself. Because if I'm doing
> one thing well, and that one well done thing takes 3-4 pages of code. . .
> Well let me just say that I'd have to find something else to do. Because
> I'm not very good at writing code. At least that is how I feel. Anyway,
> this all play a part in using a 3rd party library. In order to get to know
> a library well, you have to sift through the code line by line. When 90-95%
> of the code I've seen out there, I can not stand to read through. Do you
> know what ? I don't have to like it, or even use it. Which is where I wind
> up most of the time when looking at such libraries.
>
> Anyway, I do not expect you, or anyone else to agree with me. Which is
> fine.
>
>
>
> On Thu, Oct 8, 2015 at 11:21 PM, Rick Mann <rm...@latencyzero.com> wrote:
>
>> This must be a fundamentally different philosophy. I come from OS X (and
>> earlier) development, where abstractions are the key to app development.
>> Even libiio isn't nearly abstract enough for my tastes. It still exposes
>> (or requires) knowledge about sysfs and the connected devices. The ADC code
>> I've written on the BBB can't be used on any other computer (the sysfs
>> paths aren't consistent, for starters). A good abstraction would support
>> very high-speed I/O on a wide variety of devices without having to know
>> specifics, like sample size or padding, or configuration steps. It could
>> provide safe callback mechanisms for asynchronous use, too. Even with
>> libiio, you'd still have to build that stuff. I certainly don't want to.
>>
>> What I envision is something like ALSA, but for ADC (and GPIO). IIO may
>> not be the way to get there, but it seems to have a lot of support already.
>> It probably needs significant additional enhancement to do what I want, but
>> I'd at least like to try using it first.
>>
>> > On Oct 8, 2015, at 22:55 , William Hermans <yyrk...@gmail.com> wrote:
>> >
>> > I should probably make it clearer as to what I mean by "bad" in the
>> context of learning. I love to learn, I think learning is a very good
>> thing. What I really meant is that something like this is something else
>> you have to know, before using it. Which is not always convenient of
>> efficient. Sometimes, it can be though . . .
>> >
>> >
>> > On Thu, Oct 8, 2015 at 10:24 PM, William Hermans <yyrk...@gmail.com>
>> wrote:
>> > I do not see where it says mmap() is not so great. I do see where they
>> imply that mmap() is slower than mmap() + DMA. Which does, can, or
>> otherwise makes sense. The block copy idea is also pretty cool, but not
>> unique to iio.
>> >
>> > Here is my take on that set of slides:
>> >
>> >       • It is already written.
>> >       • It is very probably well thought out.
>> >       • It *is* yet another abstraction layer - Pluses, and minus.
>> >       • It is possibly supported. Good if so, bad if not.
>> >       • built into or can be built into the kernel if supported.
>> >       • Does use interrupts apparently, so will incur some kind of
>> penalty.
>> >
>> > Do I think it would be a cool / good thing to have in the kernel(
>> optionally ) ? No doubt - Yes. But would I use it ? I'm still not
>> convinced. But of course I see most, many or potentially all abstraction
>> layers as initially bad. Bad in that it is something else to learn /
>> understand. Bad that you get a lot of extra stuff typically built in that
>> you do not need. Which leads to bloat, and potential performance issues.
>> Also bad that sometimes it's more convenient to just use such an
>> abstraction layer, than fully understand it, which can lead to many, many
>> frustrating problems to solve. Very few abstraction layers convince me
>> otherwise, but I would guess that iio would be one to do so. If not, well
>> it is an interesting idea in of it's self to merit a second look, or four.
>> In fact, I already had thought iio was worth revisiting later, after
>> learning about it a few days ago -  While exploring the BBB's ADC's.
>> >
>> >
>> > On Thu, Oct 8, 2015 at 9:57 PM, Rick Mann <rm...@latencyzero.com>
>> wrote:
>> > There's a good slide presentation on why mmap() isn't so great, and
>> they talk about the changes they made to the underlying driver and the
>> ioctl() calls they added. libiio wraps those ioctl calls.
>> >
>> >
>> http://events.linuxfoundation.org/sites/events/files/slides/iio_high_speed.pdf
>> >
>> > It's not what I envision a proper user-space API should look like, but
>> it's much closer. I'm hoping I can write one on top of it, perhaps
>> expanding iio. But when I refer to libiio, I'm also including the necessary
>> updates to the iio driver system.
>> >
>> > > On Oct 8, 2015, at 21:33 , William Hermans <yyrk...@gmail.com> wrote:
>> > >
>> > > Yeah wow, I already said that, hah ! Too much going on . . .
>> > >
>> > > On Thu, Oct 8, 2015 at 9:32 PM, William Hermans <yyrk...@gmail.com>
>> wrote:
>> > > Rick, also for what it's worth. Getting it compiled and working on a
>> system does seem very straight forward and is shown step by step on that
>> landing page you linked to.
>> > >
>> > > On Thu, Oct 8, 2015 at 9:30 PM, William Hermans <yyrk...@gmail.com>
>> wrote:
>> > > Not sure I understand what you're getting at, but I've read that iio
>> has at least two methods of access. Slow( sysfs ), and fast( mmap()). I'm
>> not sure that the "fast" method driver exists for our board here in the
>> context of the ADC's but certainly the slow sysfs method does. As for the
>> rest of the things mentioned on that landing page you pasted a link to . .
>> . it seems that he steps are very straight forward to get working, and
>> indeed laid out on that exact page.
>> > >
>> > > What are you wanting to do with iio ? The idea of the library does
>> intrigue me too. But I'm, not exactly sure I have the time to learn
>> yet-another-abstraction-layer . . .
>> > >
>> > > On Thu, Oct 8, 2015 at 8:37 PM, Rick Mann <rm...@latencyzero.com>
>> wrote:
>> > > libiio (along with additional stuff in the kernel that doesn't appear
>> to be in 4.1.x-ti) provides for fast ADC access, rather than getting at it
>> through sysfs.
>> > >
>> > > > On Oct 8, 2015, at 20:07 , William Hermans <yyrk...@gmail.com>
>> wrote:
>> > > >
>> > > > I believe the ADC already uses a libiio "driver". Assuming it is
>> the same thing I'm thinking of. But for instance when you load the ADC
>> device tree file, it in turn loaded the iio:device0 object for the ADC.
>> > > >
>> > > > Like demonstrated on my blog post here:
>> http://www.embeddedhobbyist.com/2015/10/beaglebone-black-adc/
>> > > >
>> > > > With that said, I do not purport to know very much about it. Just
>> that it exists.
>> > > >
>> > > > On Thu, Oct 8, 2015 at 7:06 PM, Rick Mann <rm...@latencyzero.com>
>> wrote:
>> > > > What would it take to get libiio:
>> > > >
>> > > >
>> https://wiki.analog.com/resources/tools-software/linux-software/libiio
>> > > >
>> > > > Into the BBB kernels? I think this would be amazing.
>> > > >
>> > > >
>> > > > --
>> > > > Rick Mann
>> > > > rm...@latencyzero.com
>> > > >
>> > > >
>> > > > --
>> > > > For more options, visit http://beagleboard.org/discuss
>> > > > ---
>> > > > You received this message because you are subscribed to the Google
>> Groups "BeagleBoard" group.
>> > > > To unsubscribe from this group and stop receiving emails from it,
>> send an email to beagleboard+unsubscr...@googlegroups.com.
>> > > > For more options, visit https://groups.google.com/d/optout.
>> > > >
>> > > >
>> > > > --
>> > > > For more options, visit http://beagleboard.org/discuss
>> > > > ---
>> > > > You received this message because you are subscribed to the Google
>> Groups "BeagleBoard" group.
>> > > > To unsubscribe from this group and stop receiving emails from it,
>> send an email to beagleboard+unsubscr...@googlegroups.com.
>> > > > For more options, visit https://groups.google.com/d/optout.
>> > >
>> > >
>> > > --
>> > > Rick Mann
>> > > rm...@latencyzero.com
>> > >
>> > >
>> > > --
>> > > For more options, visit http://beagleboard.org/discuss
>> > > ---
>> > > You received this message because you are subscribed to the Google
>> Groups "BeagleBoard" group.
>> > > To unsubscribe from this group and stop receiving emails from it,
>> send an email to beagleboard+unsubscr...@googlegroups.com.
>> > > For more options, visit https://groups.google.com/d/optout.
>> > >
>> > >
>> > >
>> > >
>> > > --
>> > > For more options, visit http://beagleboard.org/discuss
>> > > ---
>> > > You received this message because you are subscribed to the Google
>> Groups "BeagleBoard" group.
>> > > To unsubscribe from this group and stop receiving emails from it,
>> send an email to beagleboard+unsubscr...@googlegroups.com.
>> > > For more options, visit https://groups.google.com/d/optout.
>> >
>> >
>> > --
>> > Rick Mann
>> > rm...@latencyzero.com
>> >
>> >
>> > --
>> > For more options, visit http://beagleboard.org/discuss
>> > ---
>> > You received this message because you are subscribed to the Google
>> Groups "BeagleBoard" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to beagleboard+unsubscr...@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>> >
>> >
>> >
>> > --
>> > For more options, visit http://beagleboard.org/discuss
>> > ---
>> > You received this message because you are subscribed to the Google
>> Groups "BeagleBoard" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to beagleboard+unsubscr...@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
>> Rick Mann
>> rm...@latencyzero.com
>>
>>
>> --
>> For more options, visit http://beagleboard.org/discuss
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to beagleboard+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to