2015/03/09

Diet, Exercise and Other Issues

Nerd Fitness posted "Why Exercise is the Least Important Part of the Equation", where Steve argues that getting your diet in line is the necessary first step to health and weight loss, in part because you're going to eat anyway, so eating something different is a small change.

Of course I understand and agree. I can show you my first year of documented weight loss, point out when I started doing Couch to 5K and when I ran walked a 5K, and note that the close-to-straight-line of 1 lb/week doesn't change.

Let's do that.


That red line is what's important. I started running at about day 170 and did the 5K at about 250. Maybe later. I can look it up if it's that important, but the key is, there's no dip in that trend line where I started and stopped "running". It was good for me, I'm glad I did it and need to do more, but it had zero to do with weight loss.

So, what did affect that weight loss?

Dunno for sure.

I have theories, sure, but I can't prove anything. Here's what it wasn't: Food Intake. For years, I only ate dinner. I ate it late, and soon after, I crashed out from exhaustion. Somewhere about six years ago, I started making sure I had lunch, storing a bunch of microwave meals in the office fridge just to make sure. I now do something similar with breakfast, too, and both those changes occurred several years before I started.

That's two of three daily meals that didn't change, and as I didn't try to force any diet changes on my family (and doubt it would've worked if I had tried), the third meal can't be counted as significantly different.

I say Diet Coke instead of diet cola because,
as the pic above shows, it truly was my drink,
from 1987 to 2011.
Honestly, I did two things that I credit for my weight loss:
  • I stopped drinking Diet Coke and started controlling caffeine intake
  • I started plotting my weight
The plot is shown above. The idea came from The Hacker's Diet, which I had heard of before but really understood enough to try after reading (part of) Tim Ferriss' Four Hour Body. I had no real expectation of change, but had a desire to familiarize myself with the statistical programming language, R, and needed an excuse and data set to do so. Once I had everything in place and started watching the numbers, I intentionally avoided making too many changes in the rest of my life, just to see how long the one pound a week drop would last.

The significant change is when I stopped drinking Diet Coke, and because there's so much involved there, I'm not sure what the significant parts are.

The first thing it might relate to goes to insulin. Theory goes, just like you're tricking your tongue with the sweet-but-not-sugar artificial sweeteners, you might be tricking your pancreas. All that insulin is created, doesn't find any real sweets to handle, so it goes crazy on whatever else you might have around. This is not widely accepted, as this LiveStrong article shows. Another LiveStrong article on diet cola shows that the effect of stopping varies wildly between people.

Let me introduce a vicious circle: You're exhausted, so you drink caffeinated beverages. You drink caffeinated beverages, so you sleep poorly. You sleep poorly, so you're exhausted. I lived in that cycle for years. It took a lot to get me to sleep, but when I slept, I slept so hard that, I'm told, all of my kids danced on my head while I slept. They were toddlers at the time, but still. Add to this hormonal and decision-making changes, you'll see the problem.

I've mostly switched to just drinking coffee and water — "Don't drink calories", Tim Ferriss wrote —  and not being dehydrated might be a factor, too. Plus maybe something else. I don't know.

Anyway, the 280 lb guy I used to be was just a switch away from Diet Coke to being the 213 lb guy I am today. There's diet switches I should do — the food that's easiest for me to eat at work is the easiest for me to buy a month at a time, decreasing my cognitive load, but not best food for me to eat every workday — but I doubt those changes would've meant much before I stopped drinking Diet Coke. 

2015/03/04

BLE, in case you care


These nRF8001 Bluetooth Low Energy boards are from Adafruit, When I got them, a friend soldered on the header pins, and one didn't work. I started a long conversation with Adafruit — it's not conductive to debugging when you can only do it one evening every two weeks — but I finally got pictures into them, and they suggested resoldering the ground pins. The friend resoldered them and other pins, and now, I believe they're both going. 

Of course, I need to get some more code to write and some more bits to pump before I definitively say "Yeah", but it looks like I'll soon be able to move on to learning to write things that talk to them. 

On Android. In Java.

Or on Windows. 

Looking forward to that.

2015/03/03

Look At My Pretty Pictures

The red parts of this image are a hypocycloid.
The blue parts of this image are an epicycloid.
The gap on the right side is an unsolved problem.
Perl blogger Gabor Szabo of Perl Maven asked me to show off my SVG Spirograph code, and so, here it, released as a Github Gist. I'm not quite to the point where I'm happy with it.

Years ago, as a child, I knew people with Spirographs, and I loved playing with them, making these crazy patterns with just pen, paper and geared plastic circles.

Years later, when I heard that Canvas support was being added to browsers, I developed tools in Javascript to draw these things. Nobody I knew had really any practical use for that skill, and so I kinda left it.

Until I started looking into laser cutters. Essentially, they're high-contrast printers, and they love vector graphics, using a thin red vector as an indication to cut rather than etch. So, when I saw Gabor write about the SVG module on Perl Maven, I knew what I must do.

Right now, I have three functions that generate these images, corresponding to epicycloid, hypocycloid and hypotrochoid curves, with two functions each providing the X and Y coordinates. In each, take a circle, rotate another circle around it (outside for epicycloids, inside for the others). If the point you're using is along the circumference, it's a cycloid, and if it's beyond that, it's an hypotrochoid, which, strictly speaking, could not be done with a Spirograph because the rings would get in the way. With math, Perl and SVG, this is not a problem.

SVG has the capability of drawing curves, but I assure you that the number of curves in the SVGs that created the images here are zero. If you draw lines between points, and those points are close enough, the lines look like curves, and the file sizes explode. On the other end, if you have the distance between points long enough, they are clearly lines, and it takes a large number of loops over to disguise the straight lines and get a thick curve. My code currently cycles through at 1/400ths of a degree at a time, which is fine for epicycloids and hypocycloids, but overkill for hypotrochoids.

Getting this code to handle B├ęzier curves and the like requires more math than I currently know, and might not actually be possible, but would certainly be good for reducing file sizes.

This is a number of  hypotrochoids stacked on top of each other,
cut into balsa wood. I love the 21st century.
The other problem my code has goes back to ensuring an end. Circles and ellipses are special cases of these things, and it is also the case that, with irrational numbers, that the thing will never complete, but instead look like a big black (or red, or blue) circle. So, we need to ensure that, eventually, it'll halt. If it goes over the same part twice, it makes the line thicker, which I don't want, but the problem is we're dealing with floating point, and 0.0000000000000000014 isn't mathematically equal to 0.0000000000000000015, but if we have several x and y coordinates in a row that are within 0.0000000000000000001 of previous pairs, we're probably looping over again. Eventually, I'll poke at that idea. As is, it loops 50,000 times, which is why the "both" image above isn't complete.

And, having an offset, to rotate these things as desired, would also be good. Code below, and also on Github.

2015/02/23

Bug Report? Rant? Request for help? Running Bluetooth Low Energy from Arduino

I'm with a group working on a thing. What that thing will do is not important to this discussion at the moment. What is important is that I'm expecting a flood of data from the thing (think QS/IoT) to a phone. Plus, I'll have a second thing, doing the same thing.

The current demo hardware is using wireless ethernet, which is proving slightly problematic. It's built with the idea of being used by hobbyists who want to put the chip in a thing, not for a group of many developers to prototype and develop on the hardware. I'm also unsure about the ease of setting up WiFi Direct on two devices with simplified user interfaces, and whether it'll block your phone.

So, I'm looking into Bluetooth Low Energy. I got two BLE breakout boards from Adafruit, had a friend solder in the header pins, and hooked everything up according to the docset with my Arduino Uno R2. I installed the Nordic UART app on my phone and got bi-directional communication going from my phone to my laptop and vice versa.

Then, I tried to wire up my $9 Arduino, a Leonardo clone. No go. (I did it wrong. More later.)

Then, I bought an Arduino Uno R3 at half-price from Radio Shack. No go.

Then, I borrowed an Arduino Mega and started to look into the pins. By the code, the pins not set in software are the ones providing the breakout board with CLK, MISO and MOSI. This is my first time talking to a breakout board, so I'm a neophyte to the ways of SPI. The Leonardo moved the SPI controls to another set of pins, so now that I'm slightly less dumb, I get why that failed. But the fact that the Mega and Uno R3 failed still confuses me. I timed out at midnight — had more things to do the next day than time — so I don't know if I'm stupid or what, but I had others verify I had the wiring right, and I think I plugged the second board into the first breadboard, just to ensure both were working.

I think.

Ultimately, getting this working with my R3 (or whatever) is a means to an end. It gives me behavior similar to what I expect from the things, so I can begin to work on the part that's receiving. I want to listen to two BLE devices at once. Or four. Or five. Or more. These things will be our things, perhaps coded in Arduino or not, but will certainly not be Leonardo or Uno boards, so understanding how SPI works differently on these boards is ultimately useless.

Except it absolutely must happen to move on to the next step.

Contributing to this frustration is the fact that I don't know enough about the problem domain to ask an intelligent question. I'm coming into the world of Arduino as a programmer, and in essence, what I have are variables I can set high or low, or sometimes somewhere in between, and variables I can check that are high or low, or sometimes somewhere in between. Between the set and ground, or 5V and checking is a circuit, and there's a lot about wires and resistors and the process of handing variables around that I just do not understand. With the Leonardo, the step after next (after being sure the second board works) would be to find female-to-female jumper wires, as all I have are male-to-male, then wiring to those SPI pins should be cake.

But it strikes me that someone else has failed to get this working on R3 Unos before, and I'm not seeing that person's cries for help, maybe because I'm not looking in the right place. Neither Stack Overflow nor the EE Stack Exchange site seem to really be good places, and as useful as the Adafruit Learn page is (written by the man who wrote the book on BLE), there's no way to engage back, to get clarification.

Anyway, I'll beat some more on it this evening. We'll see how far I get.

2015/02/19

2014 Body Goals - Way Late Post-Mortem

My goals, you might remember, were:

  • Significantly greater range of motion for my right foot, less pain from both feet (Feet)
  • Weight of less than 200 lbs. Waist of 32 inches or less. (Weight/Body Fat) 
  • Meeting daily steps goal of 6000 daily. Raising to AHA-standard 10,000 steps and meeting that. (Feet,Stamina/Endurance) 
  • At least one 5K race completed in 40 minutes or less. (Stamina/Endurance) 
  • A set of ten standard push-ups (Strength) 
  • One successful pull-up or chin-up (Strength) 
How did I do?

At least one 5K race? Done.

Push-ups? Forgotten about early.

Pull-up or chin up? Again, dropped early.

Range of motion? Take a guess.
I raised my goal of daily steps to 10K, and for at least one day each week, for most of the year, I made my step goal. Then, in December, things just fell apart. I tell you, most of my vacation, all I did was rearrange my bedroom and play XCOM on XBox. I'm sure that burn-out is unrelated to exercise, but it was something I dropped.

Weight? I've been between 212 and 204 lbs for most of the year, and while I'd like to be under 200 lbs, I'm okay with this. I'm sure there will be a drop in weight again as soon as it's warm enough for me to be mobile.

So, one goal out of six. Not good. Still, by nearly all objective measures, I'm in the best shape of my life. As a teen, I swam a mile, twice, and felt exhausted and heavy as I climbed out of the lake. Yesterday and today, I swam a mile in the school's pools, and I only stopped because I felt some cramping in my calves. Nothing too bad, just enough to make me think "I should stop now".

I don't have big goals. I'd still like to do a pull-up. I still want to get back on the running thing, although I'm thinking I'll have to throw HIIT sprints early into the run to get my stamina up. I will almost certainly do at least one 5K. Maybe two. And I'll try to do dead-lifting, because playing guitar a long time can cause pain in my back and shoulders. I'll develop a goal, digest into a plan, work the plan and forget that goal.

And sleep. Sleep is good. Good night.

2015/02/05

Deep Syntax in DBI

Let's look at some code. This uses DBI to talk to MySQL.

    my $out ;

    # This query gets everything out of the database
    my $query_all = '
        SELECT  steps 
            ,   miles 
            ,   datestamp 
            ,   DAYNAME(datestamp) day
            ,   DAYOFWEEK(datestamp) dow
        FROM fitbit_daily 
        ORDER BY datestamp 
        DESC
        ' ;

    # This query used a placeholder to just get better days
    my $query_high = '
        SELECT  steps 
            ,   miles 
            ,   datestamp 
            ,   DAYNAME(datestamp) day
            ,   DAYOFWEEK(datestamp) dow
        FROM fitbit_daily 
        WHERE steps > ?
        ORDER BY datestamp 
        DESC
        ' ;

    # db_hashref() is a wrapper around fetchall_hashref()
    # that looks like this :

    # sub db_hashref {
    #     my $sql = shift ;
    #     my $id = shift ;
    #     my $sth = _execute_query( $sql , @_ ) ;
    #     my $ptr = $sth->fetchall_hashref( $id ) ;
    #     return $ptr ;
    #     }


    $out = db_hashref( $query_all , 'datestamp' ) ;
    say Dumper $out ;
    # Returns all 960 values keyed by datestamp, keyed by datestamp 

    $out = db_hashref( $query_high , 'datestamp' , 18000 ) ;
    say Dumper $out ;
    # Returns the four days where I actually was that active

    $out = db_hashref( $query_all , [ qw{ steps datestamp } ] ) ;
    say Dumper $out ;
    # Returns the a multidimentional hash, with the first key 
    # being the steps and the next one being the datestamp.
    # Perhaps not the most useful, but I'm proving concepts here


The missing syntax is now that will get me the decent step days, in the cool multidimensional hashes that I've grown to love. I might have to take it back a bit to get that behavior. Suggestions?

2015/02/02

What's On My Mind?

Thinking through the Thing: I had said that I thought this was wasteful of battery life. Now, I'm thinking that many many things are wasteful of battery life, and that's the user's decision, not mine. I mean, for myself, I'd rather run it as a crontab-based Unix tool, but not everyone is me.

So, I guess the solution is to man up and learn to develop for phone. The barriers to entry for the iThing market, for me are 1) getting a Mac and 2) getting an iThing, so looks like I should learn to develop for Android.

Which I've been telling myself regularly for the last four years.

Computer Science as a Subset of Math, and what it means for Hackers like Me: I work at a big university with a great Computer Science department, one that gave me a degree. So, I feel I should go and attend colloquia and the like, to keep expanding my mind.

Thing is, as an undergrad, the coursework was all about how to use the tools of software development. Not even software engineering, which is more about creating processes for writing, testing, and delivering code. For example, the use of git as a code repository is a software engineering question, but the use of functional or object-oriented programming is a software development question.

So, what's a computer science question? I don't know that I'm qualified to answer that. But that shouldn't stop me.

Consider the sites in Stack Exchange. There's the site they created it for, StackOverflow, which I tend to go to for syntax-related questions. If you want to code, go there. If you want to use the tools others coded, there's Ask Ubuntu, ServerFault, SuperUser, and many more. If you want to ask question s about how to live and work like a programmer, there's Programmers. And, if you have over a certain amount of reputation on one Exchange, you have proven that you're a helpful person, and you get some credit on others, except for the highly domain-specific places.

Such as Math and Theoretical Computer Science. Because your thoughts on Replicants in Blade Runner or why guitars are tuned like they are mean nothing when it comes to Set Theory, P vs NP or the Church-Turing Hypothesis.

(That might be an old rule about Stack Exchange reputation.)

In essence, if an idea is best presented as source code or pseudocode, it might be best found in StackOverflow, while if an idea is best presented as an equation, it is either Math or Computer Science.

To me, in most places where we more properly say "Computer Science", we're talking, more or less, Complexity. This can involve Machine Learning, Emergent Behavior, understanding the structure of the Genome, or the behavior of puppies. Because this is what I'm looking at from the outside, there's a lot more to it and I'm subtly, or perhaps less than subtly, wrong. In a nutshell, if we could do a science without computers, without using them to image and parse physical things, without using them to analyze greater and greater amounts of data, we would've done these things in the centuries before we turned sand into circuits. "All Science is Computer Science", I say.

In my day job, I help Science. Metadata needs to exist and be here so it can be combined with data and help us know what we're talking about, and that's what I do. I make it easy to collect the metadata and write it in ways the instruments need it. I plot out the data. But I don't do anything with the data.

This does keep me busy, but when I go to talks like today's talk on "Learning Structure from Data: Applications, Algorithms, Statistical  Efficiency and General Frameworks", it's as if they're talking another language. They are. They're speaking math, and I'm used to speaking code.

So, perhaps I should take the Coursera class on Data Science. Because I'm finding need of using next-level, "smart" tools to poke into different aspects of my life, and I'm stuck somewhere between the buzzword and the actualization.

We Need Another Number Format: Think about this.


You might think "Yeah, Javascript sucks."

Same is true with Python. With Java. With Perl 5. It's IEEE 754, the standard for handling floating point numbers. If your language doesn't fail at 0.1 + 0.2 - 0.3 == 0, it is not standards-compliant.

But, clearly, if I give you a penny, then two pennies, then take away three pennies, you end up with no pennies, not 5.551115123125783e-17 pennies.

This is the thing I'm hitting right now at work.


This, the jump between $159.95999999999998 and $159.96 is simultaneously too small for anyone to care for any specific transaction and enough, for enough transactions, to put Richard Pryor in a Ferrari in Superman III.

So, I'm thinking, for the purposes I'm needing to do it, the solution is to multiply by 100, parse as into to drop anything remaining, do what simple math needs to be done, then divide by 100, or maybe just drop a period in there.

And working myself up to doing what I know must be done is what I'm doing today.

(Pictures are mine, taken by me, trying to make this post less text-filled and grey.)

2015/01/30

Parable of the Thing

There is a Thing. It doesn't really matter what it does. The Thing does a thing, and that thing can be useful. Or at least amusing.

Unlike certain Things, I like this Thing. The idea for the Thing came from a man who wanted a Thing for himself, and who wanted to sell the Thing. He was thinking of a freemium model, where you get the free version on the App Store (he was thinking an iThing, not an Android Thing, but a mobile Thing not a web thing) and pay a buck or so for more Thingyness in your life.

Who wouldn't want a Thing, right?

I hadn't played with this Thing before, and was apprehensive at first, but as soon as I worked out how to talk to the Thing, I found it very useful, developing two separate uses almost immediately. Because free access to the Thing is how we attract an audience, that's not a problem. For my uses, tying a Thing to a Widget or Sneech does everything I need it to, and so I say "Thing, do your thing" on occasion, and Thing and I are happy.

But, for the man to get his Thing going for the whole world, there are some requirements.

Having the Thing do his thing on a phone, waking up every few minutes and saying "Fellas, I'm ready to get up and do my thing", getting into it, and then going back is very wasteful of the phone's resources. It's almost as if it's only purpose is to suck the battery of the phone, which is not a thing a Thing is intended to do.

And/or, I am not an iPhone developer. I don't have iGear. I don't know an iPhone developer, at least none who are willing to work within the Thing's budget. Take your pick.

So, we stand up a server. Which takes money. Perhaps not a lot of money, but eventually, money.

Then, the app part of the Thing is simply "Thing, this is what you do." This might happen once in the lifetime of the user-Thing relationship, if the user knows what the Thing needs to do. So, that's one show of an ad. So that's not a moneymaker.

Then, as it's on the server, we need to tell the user the Thing did his thing. With Twilio and SMS, the choice that forces the least use of other services, we're at, roughly  3/4 of a penny for every SMS. This is small, but this is a charge every time the Thing does his thing, so we're losing money every time the Thing moves for free people, and for the paying customers, after Things 133 times, it's all cost.

So, I like this Thing and I'll use this Thing, but it won't show up on a phone near you. But I might put the code up on GitHub sometime, so there's that.

2015/01/27

On Market Research: Programmers Are Not People

"I have an idea for an app. This web service does A, B and C, but I really want it to do D."

You sit across the table from me. This is your idea, and you are excited by it. Maybe not as much as you were when you thought it up two weeks ago, but excited enough to meet with me on a Saturday.

I like the idea myself. I've always found getting through the OAuth barrier to the data itself not worth the time, but I broke through the day before the meeting and have done enough to know that it's finding out what the API has available that's the main issue. Your excitement is infectious, and I've caught it.

Then you ask a question. You ask the question.

"Do you think people will pay $1 for this?"

There is one thing you need to know at this point.



People have been running away from the command-line and toward windowing systems, web browsers and phone apps for over 30 years.

I have six terminal windows open right now, simply because I've been slacking off and don't need more right now.

People want tools to make their lives simpler.

I write tools to help me manage my complexity, to keep necessary complexity complex but hide details until they become important.

People have several thousand emails in their inbox.

I have several dozen folders and have my tools automatically sort my mail so that only the most blessed things actually stay in the inbox, and learned the intricacies of IMAP so, when the options available in Thunderbird and other ways do not allow me to do exactly what I want to, I write my own tools that give me exactly, precisely what I want.

People have phones which alert them whenever anyone sends them anything.

I have prioritized a few people in my life — parents, wife, children, boss, coworkers, friends — and anyone else who wants my time and attention will get it when I feel like granting it, and not a moment before.

People consider creating a PowerPoint stack as effective computer education.

I am offended by that thought.

I look at the developments of the last few years and am excited. The Internet of Things doesn't mean the rich have another channel to the bedrooms of the poor, it means I can control the bits of my house like I can control the electrons in a computer. Quantified Self doesn't mean that I'm a cog in the Big Data machine, it means I have a backdoor into the complex system of my body. Streaming and Cord Cutting mean I spend more time watching videos people made of the amazing things they learned to do, how they do them and how you can too than I spend watching actors pretend to be doctors, lawyers and policemen.

I figured out how to do that task for myself and run it every ten minutes. I enjoyed the process more than I enjoy watching Monty Python, and Monty Python is the bomb.

People use Windows and Mac because they don't want the hassle of real computing.

I use Linux because I want, I need, I revel in, I'm drunk with the power that I get from real computing. And I know that, as things go, I am barely scratching the surface of what's possible, and I know people who take it far beyond what I am.

Do I think people will want this app? I think people will want to learn to program, to find out how things work and how to make it work for them.

And I am wrong.

For purposes of this conversation, I am not People, I am  Kang or Kodos, orbiting the Earth in my flying saucer, To Serve Man in my left tentacle while I blink my one yellow eyeball and ponder the subjugation of Springfield. I don't want to be that person. I don't want to be trapped in a bubble-helmet, wondering what those meat-sacks want.

To switch references, what I do have are a very particular set of skills, skills I have acquired over a very long career. Skills that make me necessary for people like you. Making this work? Finding all the data? Plugging in everything? It's what I do.

But I love what I do. I don't really understand why people don't do what I do. And that's a good thing. You want me at this keyboard, you need me at this keyboard. I don't understand why you don't pick up a keyboard and occupy a standing desk. Why would I do anything else?

But don't ask me about what people would do. I'm the last person to know.

2015/01/26

Why I Am Ambivalent Toward Developing A News Aggregator Tool

I am involved with a project that combines Internet of Things and Quantified Self. Because I'm first and foremost a web/server guy, I'm joining in at the web/server level, and as the team is working on the hardware prototype, there isn't much for me to work with yet.

Because of this, and because the project leader is using the shotgun approach to find funding, including creating a news aggregator in the field the product will service. As we're OMG so pre-alpha right now, I'm not going to get too far into details about what we are and what we're doing, but I will engage the concept head on. (The project manager has received the full rant already.)

In the late 1990s, a standard for an XML format was developed called RSS. This can mean Really Simple Syndication, and in essence, if you put out a blog, it was an XML list of the last 10 or so posts. They added in payloads, pointing to the location of media files, and that, connected to the iPod, was the genesis and fundamental technology for podcasts.

Keeping track of the lists became a job of Aggregators, and another XML format called OPML was created to allow the transfer of collections of RSS feeds from one aggregator to another. These allowed you to find all the RSS feeds you want, group them into different subjects, and take in all the news you care to.

Then Google came in and created Google Reader, which is the best, most solid, most usable RSS aggregator mankind has ever known.

They closed it in July, 2013.

There are other aggregators -- I use Feedly -- but the excitement is largely past. Instead, now there are Curators: sites that find links other people put up about a topic, defined narrowly or broadly. Boing Boing is a curator site that's about "the weird, wonderful and wicked things to be found in technology and culture", which is essentially everything the curators of BB find interesting. More narrowly, there are sites like Slashdot ("News for Nerds"), LifeHacker (small changes you can make to supercharge your life), io9 (Science Fiction and how the modern world is like Science Fiction), Jalopnik (Cars), Ben Greenfield Fitness (exercise, diet and other things leading to fat loss, muscle gain and enhanced endurance), I Heart Guitar (guitars and amps and pedals, mostly gear-centered) and so on. Often, they have podcasts or vlogs associated, as well as written content.

The key here is these are curated: there are people who read all the sites and get all the news about a subject, filter and digest the results, and create content explaining the information involved in the link. They have writers, and the writers have interests and opinions and color. I Heart Guitar and Stratoblogster cover different things because I Heart Guitar and Stratoblogster have different personalities and interests.

Additionally, there's "deep and narrow" and domains of interest. I Heart Guitar is not going to tell you about the reissue of an obscure 70s folk-rock record, and Aquarium Drunkard is not going to tell you about the new mini Tube Screamer pedal, and neither is going to tell you about what Justin Bieber is doing this week. (I'm sure there's a curated site that'd tell you, but since I don't care about pop music, I'm not sure what it is.)

A site curated for music fans would contain announcements for upcoming tours and albums, and "lifestyle" interviews with entertainers. This is Rolling Stone. A site curated for musicians and people who want to be musicians would contain reviews of instruments and gear, instructional material about how to play songs and styles, and interviews with musicians and producers focused on how they play and who they listen to. Guitar Player, Guitar World, Acoustic Guitar, etc. You don't see questions about guitars, amps and string gauges in Rolling Stone, and you don't see interviews without them in Guitar World and Guitar Player.

So, for the domain-specific part to work, you need a sense of which corner of the audience you're going for, and you need someone, maybe a few someones, who spend a good fraction of their waking moments reading about it, digesting it, and creating content from it. I has to be a curator, not an aggregator. I will not spend more time than I have already creating "Like Feedly, but just for this!" I am not going to try to succeed where Google failed. Creating that is a waste of your time, of the audience's time, and finally of my time.

If you introduce me to that person, the person who will be spending 40+ hours a week learning everything there is about the topic and creating copious amounts of content, from text to images to maybe video, I'd be glad to help you stand up a WordPress site and enable that person to be the Cory Doctorow of his field. For an hourly rate.

But I cannot work on that AND work on our IoT/QS project.

I can work on that OR our project.

I'd much rather work on our project.