To familiarize myself with the new $lookup feature of mongoDB I did some experimenting.
I tried a couple of different document structures and companion aggregation queries. I based my experiment around the idea of having orders that have keys into related items detail documents.
After seeing the results of some of the aggregations at this point (parallel arrays) I felt like either you'll have to do more manipulation with the aggregation framework to get what you are after, or you'll need to write some code. I think I'd rather just write code. Where the result set out of a SQL join seems smooth, for these types of scenarios the $lookup operator just seems clunky.
In an actual implementation I think I would prefer to see a variant of either of the last two types of documents that includes price in the document. Product prices do change. For example, sale prices, promotions, etc. Include the price in the order and you won't need to use the $lookup.
Use my code below, posted as a gist, as a jumping off point for your own experimenting.
Pre-fabricated Cables and TestingStart off by grabbing one of the blue cables (mostly CAT6) that you have laying around. They are usually provided when you purchase a router or switch. You’ll use this cable to see the output of the tester when it is hooked up to a good cable. The lights on both parts proceed in linear sequence 1 through 8. Feel free to use these cables to connect between a local switch and devices. Don’t run these cables through the house.
|Figure 1. Ethernet continuity tester. Image source: |
Wire on the spoolWhen purchasing the gray/beige CAT 5 or 6 cable at the store, make sure that it is PLENUM rated for running through homes. With these cables, you can read the print on the side of the cable and see a UL
CrimpingLook at the pre-made cables and Figure 2. Notice that the ordering
of the inner striped Green and striped Blue wires is different than the outer Orange and Brown wires. When inserting the wires into the connector make sure that they are going all the way to the end of the connector. When you crimp, you are pushing little metal teeth into the wire at the very end.
Don’t over trim the cable jacket. It is compressed by a plastic piece during the crimping to help hold everything in place.
The crimper is designed so that when you start crimping it doesn’t release until you’ve compressed everything all the way.
Test that the connector was successfully installed with the continuity tester.
A couple of years ago I picked up an HP DM1-3025DX as a fun little affordable Windows 7 portable computer. It came stock with an AMD E-350 dual core processor, an 11" 720P display, a speedy 7200rpm 250G HD, 3G of RAM, web cam, HDMI and VGA output. It also has 802.11n, gigabit ethernet and bluetooth.
- The just okay performance of Windows 10
- I already have a powerful Windows 10 laptop
- I don't have a computer running Linux natively
- I don't care for the Ubuntu interface
- I do like the clean Linux Mint Cinnamon UI
Working on a Windows machine, I downloaded the ISO image from the Linux Mint website Then I picked up a copy of rufus for "burning" the ISO to a USB thumb drive. Next, I had to drop into the CMOS settings and reconfigure the boot order allowing for boot from USB.
Post installation, all of the laptop devices seemed to work properly except for Bluetooth. Research points to this potentially being a problem with this particular release of Mint.
I used a Logitech Anywhere MX mouse with this computer. I had previously paired the mouse and dongle under Windows. I did some research and found that there is software for working with the unifying dongles.
- Atom w/Markdown extension
- Google Hangout - has a bug that leaves the camera active post chat
- cheese - because I needed a way to turn off the camera
- Flash for Firefox
- mongodb w/developer settings
PDF viewing was slow when I was viewing some rather large PDFs of graphic novels. Rendering and scrolling was painfully slow. However, when viewing more "normal" type PDFs like a one page hand out or a 100+ page text the performance was acceptable.
Web browsing and rendering of more complicated sites was slow.
Atom performed acceptably with Python as well as Markdown with preview.
Overall, I found the Linux experience enticing. I feel that I would rather use the laptop with Linux than Windows 10. This configuration is a pretty good balance of a don't worry about it on the go laptop. However, this form factor and sub-optimal performance does leave me longing for a laptop like what I envision the second generation retina MacBook will be like. Although, that will cost significantly more!