Last week I had some roadtrip and was passing a few interesting points. I wanted to add a note to visit that places in the future, but couldn't as was driving a car. And I started dreaming on how it would be awesome if you just could add a note using your voice. But I'm lazy. Would be even better if it could be added to the backlog of places to visit just by making thought command. But I'm too lazy. Thinking about visiting some place is good, but need to make a specific command in my thoughts - go and visit this place later. Not ideal yet. Would be better if there would be some invisible assistant that could do that for me. That would know me as good as I do. Who would know what I might be thinking about, who would understand my desires even when it's not clear enough for me yet. Some AI assistant, that would know that I might be thinking how nice it would be to visit that shop with a fresh seafood, because I love seafood so much.
But how can any AI be smart enough? How could any AI understand me so well? Reading thoughts? Yes, but that is such hard thing now (well, yet possible someday). But if there would be a device that could see what I see, hear what I say and what others say, then it would be able to learn and understand me someday. And then I realized that I just described Google Glasses.
The more I thought about this AI assistant the more I understood that it won't be an assistant anymore. It would be my digital shadow copy. Able to think like me. That knows what I know, because has vision and can hear - more than 90% of information sources the human uses. And there would be a company that would own my mental copy. The company that could ask my copy if I would prefer to buy product A or B, or what am I going to search in nearest future. You know, the company like Google could even already have search results for me ready way before I decide to do a search.
And what about ads? Are you kidding me? There is no ads anymore! No one needs ads. Company knows what I want to buy already. It just shows me what I want and need to buy already.
How good it could be? Well, you don't know but I eat 1 banana every day. But my digital copy would know that for sure. I have only 2 bananas left in my fridge. So, my shadow copy knows that I need to buy another bunch of bananas soon. And it buys it for me. My bananas are delivered in a day. No shortage, no rush, no efforts from me. I don't even need to think or worry about that anymore.
This is something that changes basically everything in our lives. And changes are good.
Err is human...
This is my second post based on notes from the book The Design of Everyday Things by Donald Norman. As I mentioned in last post, I loved the chapter about human errors and mistakes and how to design things to avoid this mistakes. So, here are my notes...
There are different types of errors:
There are different types of errors:
- data-driven errors
- capture errors
- description errors
- associative activate errors
- lost-of-activate error (forgot what wanted to do)
- mode errors (forgot in which mode)
- feedback is not always available (lack of visibility)
- different level of seeing error (you're looking error at more low-level while it's a level or a few above)
Human Memory
I've read an awesome book recently - The Design of Everyday Things by Donald Norman. I must say that didn't expect much of this book. My thought was "just another book for designers on how to create usable things". There was however something pushing me to read this book, maybe because I've read about it in the In the Plex; book was references as the one that influenced Google's founders. Well, now I can understand why. Even thought the book is mostly about trivial things that everyone should understand and know. In fact, it's not true. Not everyone understand and know. I didn't. So many openings about regular things, views from different perspectives, inspirational rules etc.
There are many topics that I liked in this book. But the chapter named "To Err is Human" maybe the most favorite for me. Not only because I make so many mistakes and errors all over the time by myself, and it's nice to understand how this works (and how I work). But because author gives very good explanation on how human memory and brains work.
I made some notes during reading this book, and decided to share some of the them that are related to how human memory works. I also was thinking how this apply to the AI. And made some interesting openings for myself too.
So here are my notes...
There are many topics that I liked in this book. But the chapter named "To Err is Human" maybe the most favorite for me. Not only because I make so many mistakes and errors all over the time by myself, and it's nice to understand how this works (and how I work). But because author gives very good explanation on how human memory and brains work.
I made some notes during reading this book, and decided to share some of the them that are related to how human memory works. I also was thinking how this apply to the AI. And made some interesting openings for myself too.
So here are my notes...
memory: metrics graphs with gnuplot
So, at my spare time, I work a bit on my pet projects called memory. This is a simple virtual memory written on Java. User can allocate a large space of memory and then use it to allocate and free some blocks of it for personal use.
My main interest was to implement some memory allocation algorithms that could be working in concurrent environment with minimal of locks. I'm still on my way with it however, have some progress.
One of the problems with such projects is the way you can measure performance and quality. And what is more important, how you can assess you changes in these fields. Without a good set of performance tests, you can't know if your changes are for good. But having tests is not enough. You need to have metrics and gather them, and represent them in some charts for better visibility. Visualization matters. And then, when you have a way to look at those charts you can examine your's changes much much easier and better.
So that's what I did. First, wrote a simple metric gathering framework for internal use. Then added
metrics and used CodaHale Metrics to gather metrics data and save into CSV file.
My main interest was to implement some memory allocation algorithms that could be working in concurrent environment with minimal of locks. I'm still on my way with it however, have some progress.
One of the problems with such projects is the way you can measure performance and quality. And what is more important, how you can assess you changes in these fields. Without a good set of performance tests, you can't know if your changes are for good. But having tests is not enough. You need to have metrics and gather them, and represent them in some charts for better visibility. Visualization matters. And then, when you have a way to look at those charts you can examine your's changes much much easier and better.
So that's what I did. First, wrote a simple metric gathering framework for internal use. Then added
metrics and used CodaHale Metrics to gather metrics data and save into CSV file.
SyncTab is open sourced
As I wrote yesterday on my twitter, SyncTab had been open sourced. About an year ago I started working on the project that would simplify my life. I used a lot my new smartphone to browse internet and read RSS, but the most interesting articles I wanted to read in my browser on laptop. And I can be pretty lazy and its easy for me to forget things, so I wanted to be sure that I won't leave this links without attention. The only way I could think about was just open the link in browser as soon as possible.
Subscribe to:
Posts (Atom)
