What you've said can and does work for telling time, but from watching a few of their videos it looks like the watch part of this device is a secondary function. It connects to your phone and will display the caller's name or text messages like other smart watches, but in braille. I can't read braille, so don't know how effective that is with the limited space. It would be interesting to hear from a blind person what their current state of electronic connectedness is since this type of device is supposed to improve the parity between blind and non-blind individuals.
One of the cooler things mentioned in one of the videos (https://www.youtube.com/watch?v=zmpl81WmFSo) was that they developed their own magnetic actuators that are a 10th of the cost (if you believe the marketing) of existing ones. I haven't verified any of those claims, but if true does mean their braille tablet could be an affordable reality.
More recently self
-
assembled nanogratings produced by ultrafast laser writing in
glass were proposed for the polarization multiplexed optical memory,
where the information encodi
ng would
be realized by means of two birefringence parameters, i.e. the slow axis orientation (4th dimension) and
strength of retardance (5th dimension), in addition to three spatial coordinates
[3,4]
.
As an additional data point, a former client (female) addressed our mixed-gender team as gals. This is something the article explicitly calls out as taboo. It didn't bother me (male) at all nor did it seem to alienate anyone on the team.
Disclaimer: I use "guys" as mixed gender a lot and this slack bot would really piss me off; the opposite of "valuing, respecting, and supporting the needs of every individual".
You use a breakout board to get the connector you need to hook it up to your computer. So for the 5v mini you would get something like this: https://www.sparkfun.com/products/9716
You then either solder on some headers and connect it to the breakout, program it, and then disconnect it when done or do some funky alligator clip madness to connect the breakout to the arduino.
Note that the pro already has the pins waiting for the breakout to be connected.
You'll want an Arduino that has headers and a usb connector already soldered on and the usb cable to fit it. That's really the bare minimum. From the article, this one looks like it would fit: https://www.sparkfun.com/products/11575 and only $9 on sale day.
Now if you want it to do something you can see other than in the logs from within the IDE, that's when you start needing more stuff. Generally a breadboard, wires, and some components like leds and resistors come next; for making blinking lights, who doesn't like those?
As far as the computer, it can be best answered here but is just about anything you have: http://arduino.cc/en/Guide/HomePage in the getting started section.
I'd certainly prefer to be able to reason about the code with the safe assumption that certain things cannot be null.
You can do this, but if you want it to be maintainable, you'll also want to detail in the function comments this technical debt. If you don't, someone else will come along and see your sweet method (looking only at the comments) and use it where the input can be null.
Ex:
/**
* This does some stuff.
* @param entry Does something with this
* DEBT: Assumes the input entry is not null.
*/
void doSomething(SomeObject entry) { }
Why just put it in the documentation? Documentation is liable to drift from implementation, and AFAIK no compiler or runtime verifies the accuracy of comments. I'd feel much better about adding asserts to the original code, leaving it for a few generations of testing and exposure, and then eventually remove the conditionals. The assert calls then function as executable documentation.
Depending on your user-base (i.e. if you distribute headers to other developers with precompiled code), the documentation may be necessary on its own... but it's much weaker than an assert.
Java has supported @Nullable and @Nonnull for a while, it's pretty standard in good Java code these days, and the IDE's will perform static analysis to make sure you use these annotations consistently (e.g. warn you if you are checking a @Nonnull against null or if you are forgetting to test a @Nullable against null before dereferencing it).
From the help button in the top right, it looks like you can rotate and flip the components. (To GP)It definitely wasn't the easiest to find, maybe have a tutorial video showing how you are doing some of the things like rotating and moving traces to the bottom layer in the main video? Looks pretty good so far though; I might give it a try later with a board I've made before.
[Edit] A grid would be killer too; great suggestion.
[Final Edit] Tooltips on the components/actions would help your goal of making electronic design simpler/easier to do.
Selecting: Hold down shift and left click elements.
Box select: Hold down shift and drag a box around the elements to be selected.
Deselect All: Left click on the canvas.
Move Element: Just drag it.
Connect Terminals: Drag from schematic terminal to other schematic terminal.
Disconnect Terminal: Left click terminal. Click 'X' .
Rotate Element: Select element and push 'r'.
Remove Element: Select element and push 'del'.
Flip Element Horizontally: Select element and push 'h'
Flip Element Vertically: Select element and push 'v'
I received an email a while back from them basically saying they were going to start taking privileges with my data if I didn't go to a page and opt-out. I don't remember the text, but that was the gist.
[Edit]
Did some digging and the email subject was: Important Update Regarding Your Privacy
It has various sections on what will be used and how with a call to action at the bottom listing your options.
Opening text: Why am I getting this notice?
Your privacy is an important priority at Verizon Wireless. Our Privacy Policy (available at www.vzw.com/myprivacy) informs you about information we collect and how we use it. Today we want to tell you about some important updates relating to two new uses of information. Verizon Wireless will begin using the information described below for (1) certain business and marketing reports and (2) making mobile ads you see more relevant. If you do not want us to use this information for these purposes, you can let us know by using one of the options described in the "Your Choices" section of this notice. This supplements our Privacy Policy.
Your choices section:
If you do not want us to use your information for any of the purposes described above, please let us know at any time by:
I received the same kind of email from AT&T awhile ago. I immediately called them up, and asked to opt-out. After 30 minutes on the phone, the representative told me that the "feature" hasn't been rolled out yet, and I should call back a month later.
Guess what? I completely forgot about it. That was probably the intention all along....
Thanks for the reminder, though!
I had a similar experience with Clear (wireless) and the binding arbitration clause in their ToS. When I called to opt out (because one cannot do so online, of course :-/ ) I was transferred 6 times and in the end the drone finally gave up and just asked if putting a note in "my file" would be sufficient. At that point, I think we were equally frustrated with one another and I settled.
But I can easily imagine some lawyer-type dreamed up such a clause but failed to tell anyone else in the business about it.
If an assumption can be made that you won't put null values into the map then it can be rewritten where it doesn't need to do the check described above:
value = map.get(key);
if (null == value) {
// Handle no value in the map
}
I think one of the points of the OP's article is that in Go you don't have to code like you've done here, where a single return value means one of two things (in your example: value in the map, or special reserved value that indicates the key wasn't found in the map). Go is cleaner, even if it's just a small improvement.
One of the cooler things mentioned in one of the videos (https://www.youtube.com/watch?v=zmpl81WmFSo) was that they developed their own magnetic actuators that are a 10th of the cost (if you believe the marketing) of existing ones. I haven't verified any of those claims, but if true does mean their braille tablet could be an affordable reality.