Friday, February 27, 2015

House Words oh a Whim


In a moment of nerdiness, I took a goofy online quiz which would generate Game-of-Thrones-esque "House Words" for you. Some popular examples include:

        House Stark: Winter is Coming
        House Baratheon: Ours is the Fury
        House Martell: Unbowed, Unbent, Unbroken
        House Tully: Family, Duty, Honor
        House Greyjoy: We Do Not Sow
        House Frey: Our Cloaks are Reversible

Yes, I made that last one up. But it's fitting, no?

Anyway, I got a good laugh from the wise words the quiz appointed:

        House Allen: We Do Not Like How Much The Fourth Season Deviates From The Books

It's funny, and sad, because it's true. A bit odd considering I selected "Cryptic" from the choices of types of mottos, and that seems quite straightforward regardless. All the more fitting, come to think of it.


Now back to Hugh Laurie and my work! I'm nearly finished with my Provisional Patent App, to be submitted later today, at which point I'll be able to finish up that post and "lessons learned" and the like.

Saturday, February 14, 2015

The Patent Process: An Ambitious Adventure


Having come to a position of interesting balance between: A) a suspenseful excitement at nearing the point where I can make my project into a "real" business venture, gaining some legitimacy and support, and B) a paranoid anxiety that my dream will be realized by another individual or company before I can make it my own.... I'm finally starting the patent application process!

I figure this might be an excellent opportunity to document my steps, struggles, and lessons both as I go through them and in a retrospective summary. In the end, I could put together something of a straightforward guide to the bureaucratic maze for the layman. While I consider myself an intelligent person, I've never studied law and no little of intellectual property rights and the like. So I imagine I'll be able to capture the "typical new inventor" perspective, making it accessible to most prospective readers. Even more so given my youth, general life inexperience, and borderline naive optimism about the future fruits of my efforts.


Disclaimer: None of this post (or anything on this blog ever) should be considered as legal or financial advice. Consult the necessary professionals for official advice; don't take any action based on the content of this post or blog alone. Seriously, that would be moronic. I'm an amateur.

Attack of the Jargon!

The first few steps I'm taking are to: 
   [1] try and find a list of "steps" (i.e. which forms and in what order), 
   [2] exactly what documentation is required on my part (i.e. all the fancy diagrams with so many 
        labels & lines; one favorite here, and some classics made into posters), 
   [3] of course the associated fees, and
   [4] when do I even do this? From "neat idea" to "proof of concept" to "functioning prototype", at 
        what point is an invention far enough along to be patentable? 

The first roadblock I ran into was the language. As with much in government, the bastion of knowledge is defended by impenetrable walls of language, each stone an element of jargon mortared with unnecessarily formal phraseology making even the simplest of sentences a challenge to comprehend (Note that I typed that with a hint of irony... hard to convey via text!). 

So for starters, I'll collect a list of terms relevant to the patent application process, which should make official documentation and the like a bit easier. As I'm in the midst of work right now and just got distracted with the idea of writing this blog post, I'll probably edit it later with some more terms & definitions. But for starters:
  • Registered Practitioner: An individual certified/registered to practice patent law; i.e. a patent attorney or agent. 
    • Relevance: The first couple forms to file allow associating a registered practitioner. As I understand it: if a patent lawyer's helping you, s/he's your registered practitioner.
  • Pro Se Inventor: An inventor without representation/assistance from a registered practitioner. In other words, if you're doing this on your own, you're pro se. Like me. 
  • Small Entity: If the applicant is an individual or small business (< 500 employees, I think). Other circumstances apply as well (nonprofit, higher education, etc). 
    • Relevance: 50% reduction in patent fees! Hurray. 
    • I believe you don't necessarily need to provide "proof" or get approval of qualification as a "small entity" prior to filing the application. Micro, however, does prior approval.
  • Micro Entity: An individual (or multiple) who I) have low enough income and II) have less than four existing patents. 
    • I) Specifically less than 3x median income, which was about $155,000 last year. Or majority of income is from a higher-ed institutions (Nolo.com's got helpful details).
    • For join inventors, each inventor has to individually qualify. 
    • Relevance: 75% reduction in patent fees! Double hurray. 
    • Requires prior approval/qualification, which is another form. 
  • Assignee vs Inventor: A corporation can't be an inventor, though often companies are who get the rights to patents. Thus the "Inventor" is one or more individuals while the "Assignee" is who ends up with the rights to the patent. If it's just you, however, then the inventor & assignee are the same person(s). 

Thursday, February 12, 2015

Gource: A Free (and Easy-to-Use) VCS Visualization


A friend shared this with me a while back, but I finally have a neat repo to test it on and a blog to show it off! Gource is a free tool that visualizes files & commits in a specific version control repo. The example below is a project I've been working on for a while. While the repo in the video is git, the author's page claims it also works with Mercurial, Bazaar, and SVN as well. 

 - Uploading directly to Blogger resulted in terrible resolution & quality in the version below. -  
(In case the video doesn't upload right, it's also on YouTube)

And it's pretty damn simple to use, too. Just running gource from a command line at the top level of a given repo runs it with its default settings, but it has a pretty extensive set of parameters if you want to change things (speed it up, specify date ranges, etc.).

In this example, there's really only one author (me), but I sometimes from a Raspberry Pi as well, which it currently just treats as a second user (named "pi", of course!), thus the second figure floating around.

My only wish is that it could somehow visualize the extent of the changes made to a given file, perhaps by color, or "flashing" that file's dot (varying brightness) temporarily, or maybe the changed file's dot grows in size for a second or something. That would make me feel better for those long hours and manny commits on a few particular files!

Anyway, really cool and free -- what can be better?


Tuesday, January 27, 2015

An App Idea, an App Endorsement, and an Unrelated Music Endorsement

I'm sitting in Starbucks, whiling away some time, as is my Tuesday ritual, and want to listen to some music, probably via Spotify or Google music, and I had an idea.

The Awesome App of AirDroid

I've linked up my phone to my laptop via AirDroid, an app I cannot recommend strongly enough for those who like to links their various devices, transfer files between them, etc. It's not a new app by any means, so a ton of people probably already have it, but I've only recently come to appreciate several of its uses.

I'd originally found it while searching for an Android equivalent to AirDrop (like I expect many people did, and was its original purpose, given the name). I have a lot of drive time so like to transfer audiobooks and other large files. AirDroid does this splendidly, allowing one to connect computer & phone on the same WiFi network, but pointing a browser to a specific IP & port, or (even easier) just be snapping a photo of a QR code with the phone.

What I've come to appreciate all the more its functionality allowing control of the phone from the laptop: texting with a full keyboard, file management on the phone, and about most everything else. It's come in extremely handy.

While I'm broke and unemployed now, I've added AirDroid to the list of apps I'm happy to purchase or donate to once I have an income.

An Awesome-r App (Idea)

I've got plenty of data on my cell plan, and hate to suck bandwidth away from the other WiFi users (I'm not one to play along with the tragedy of the commons!), but I need the phone on WiFi to use AirDroid. So I thought it would be pretty damn useful to have an app that could specify which network connection to use for certain apps. I want to be able to tell Spotify to use the 4G connection, while letting AirDroid use WiFi. I'm not sure to what extent that's possible though, should the OS itself not distinguish the separate network connections well, but I seriously doubt that would be a problem, since Android is Linux-based. 

Perhaps something like that already exists, in which case I've got to get searching. If not, someone should make it! This blog gets a pageview or two most days, so perhaps if I laden it with keywords like "app idea" and "android app developer", I'll get the right person to find it. ;-) 

An Incredible Cello Artist

Finally, I decided to play Zoƫ Keating (Wikip), a cellist with a twist. I first heard of her on an old Radiolab episode, which discusses her unique method of making music, recording herself, looped digitally, and creating incredible songs as a result, consisting solely of her & her cello. Having enjoyed her music from time to time for years, I now recognize the snippets of her songs that NPR tends to play between stories. A good choice!


Thursday, January 22, 2015

Sharing Resources

I added a list of links to the right-hand side of the blog site (labeled "Misc Resources") as a spot to put some of the better various sites, guides, etc. that I find particularly clear or useful.

To start, I put up two pages I've been using heavily of late:

  • Krondo Twisted Introduction: This is a fantastic (albeit lengthy) introduction to asynchronous programming, specifically in Python and using Twisted. Dave Peticolas does a hell of a job taking what can be a very tricky abstract concept and breaking it down into digestible chunks, rather clearly explained and with a twist of humor throughout. And to top if off, he provide all of his example code conveniently organized in a GitHub repo
  • Lessons in Electric Circuits: Tony Kuphaldt churned out six "volumes" of textbooks providing a very detailed introduction to electronics and circuits, all available for free (including PDF copies). While the text is a bit excessively thorough and tedious for my purposes & interests, it's so well organized that skimming through to get high-level ideas and work towards the topics of interest to the reader is made really easy. There's an abundance of diagrams and examples, with every phenomenon and lesson very accessibly elucidated. 
I'll try to remember to add in great resources as I come across or recall them. And maybe every once in a while, I'll do something like this post, and provide a summary on recent additions to the list. 

Wednesday, January 21, 2015

Random Business Idea: Scattered Mini-Work-Depots

Framing the Problem

While currently residing a bit south of Columbus, Ohio, I'm spending a day most weeks up in Cleveland. Fortunately the three-hour one-way commute is greatly eased by hours upon hours of Game of Thrones audiobooks. But with multi-hour stretches between appointments and the like, I like to dip into whatever project I'm working on at the time: watching some Coursera lectures, doing some coding, the endless job hunt...

I typically make due by chilling for a while at a coffee shop (Phoenix is a favorite, Algebra's (Facebook, G+) another). But frankly, I'm completely broke, and continually buying coffees to assuage my guilt for camping out and mooching WiFi is not a sustainable option! Plus -- though maybe it's just me -- outlets for charging one's surplus of electronic devices are hot commodities in any such location.

Oh, and I drink a LOT of water. So having to find a public restroom once an hour gets really annoying.

Work Anywhere with Workstations Everywhere!

So maybe it's overkill or otherwise solving a minor problem that doesn't bother too many people. But what if there were rather simple workstations placed sporadically in popular locations, particularly cities or areas where traveling for work might be common. Perhaps a simply monthly fee for X uses per month, or a pay-per-use option.

A small work depot could provide the simple necessities to be productive for varying stretches of time. Charging stations, of course, and WiFi access are obvious needs. But simple chair & desk, maybe an extra monitor with various common adaptors to plug in (but then not everyone cares so much about a second monitor). A place to get out of the heat or cold or rain or snow, and a bit more room to stretch than just staying in one's own car.


I have to admit, though, that this might just be an excessive solution to a small or uncommon problem which has a variety of other easy solutions. Maybe taking up a table for hours in a given coffee shop, having purchased just a $3 coffee doesn't bother most people, or perhaps libraries or other public locations are sufficient. Plus the costs of renting or creating a physical brick-and-mortar service like this, with value closely tied to an extensive existing network of locations, then adding in the costs of power, internet, ways to minimize theft, et cetera... hell, as I'm typing this the idea seems increasingly foolish.

But the idea popped into my mind and I like to work through them, because you never know when you'll end up with a really great idea once fully though-out! I have so many damn ideas like this on a regular basis, maybe I should I post them more often, should one of them spark a better idea in someone else's mind!

Friday, December 12, 2014

Getting Physical: Learning to Interface Python & Hardware

I've always been more of a software guy then a hardware guy. But a litany of factors have resulted in me finally putting a lot of real effort into making an old idea of mine become a reality, so now's the perfect time to start getting hands-on experience working on the hardware side of things!

In short, I need to create a device that can take some real-time distance and motion measurements. Ideally, this device will be small, inexpensive, simple to setup/install, and wireless (which means wireless communication and wireless power). To start, though, I'm just getting a functional prototype going for proof-of-concept, so I'm not worried about the size, wired vs wireless aspect, etc.

It's Alive!

Maybe I'll get a chance to go into some more detail at a later date, but for now I'll skip to the cool part: version 0.2 is operational! (I arbitrarily used v0.1 to getting the accelerometer working, and v0.2 has the distance sensor as well).
Device v0.2: RaspberryPi + GY-521 MPU-6050 accel/gyro + HC-SR04 range sensor

Since I went into this pretty blind (no idea what I'm doing at the outset) and a with low expectations (circuits was one of my worse courses in physics undergrad), I made some choices that erred on flexibility. For one, I started with a Raspberry Pi B+ model. Choosing a RasPi instead of an Arduino came down to two key differences:  1) RasPi is an all-in-one computer while Arduino is a much simpler microcontroller, so the former has a lot more functionality while the latter is intended for a single or fewer uses; and  2) Arduino's programming environment is in C, while Raspberry Pi runs a parred-down Linux, so I can code in just about anything I like: Python, Perl, Java, C, etc. 

There are a wealth of helpful tutorials for getting started in RasPi and interfacing it with various sensors & equipment. For the accelerometer/gyroscope unit, I used a Kootek GY-521 MPU-6050 (also bought a couple ADXL-345 units which were popular on blogs & tutorials). And for distance, I'm used an HC-SR04 ultrasonic range sensor. I'll make a note to come back at a later time and link out to the best tutorials I found, but a simple Google search gives you plenty. 

Oh, and for the Raspberry Pi board itself, I went with a starter kit from CanaKit, which provided a lot of the important peripherals in addition to the basic RasPi board (e.g. power supply, wifi dongle, enclosure). As a complete idiot when it comes to DIY circuits/electronics, I can say the CanaKit package was a really great place to start. 

In the end I'm actually a bit surprised that once I learned the basics of build-it-yourself electronics, the hardware aspect of my project was a surprisingly small portion of the hours I've put into it so far. So I'm already going back to the coding stuff I love! My next task is to start learning multi-threading & queuing in Python, so I can have the two sensors running in parallel and controlled by a single program.