Wikipedia:Reference desk/Archives/Computing/2018 January 26

= January 26 =

Calling Python function in submodule
In Python3, after: import pandas I can run: pandas.date_range('1/1/2018',periods=30) date_range full path is: pandas.core.indexes.datetimes.date_range

However, pandas.pprint_thing('text') raises an error. Full path: pandas.core.indexes.frozen.pprint_thing

Why do these options have different results? Hofhof (talk) 00:34, 26 January 2018 (UTC)
 * The __init__.py of the package contains the line

from pandas.core.api import *
 * and core/api.py contains

from pandas.core.indexes.datetimes import Timestamp, date_range, bdate_range
 * This makes date_range available to the package. When I manually add

from pandas.core.indexes.frozen import pprint_thing
 * to core/api.py and reload pandas, then pprint_thing is also available. --Wrongfilter (talk) 21:16, 26 January 2018 (UTC)

Dynamical model of CNNs (cellular neural networks)
The page on cellular neural networks makes some mention of the mathematical modeling of CNNs using systems of ordinary differential equations and other dynamic behavior of CNNs:

The dynamical behaviors of CNN processors can be expressed mathematically as a series of ordinary differential equations, where each equation represents the state of an individual processing unit. The behavior of the entire CNN processor is defined by its initial conditions, the inputs, the cell interconnect (topology and weights), and the cells themselves. One possible use of CNN processors is to generate and respond to signals of specific dynamical properties. For example, CNN processors have been used to generate multi-scroll chaos, synchronize with chaotic systems, and exhibit multi-level hysterisis. CNN processors are designed specifically to solve local, low-level, processor intensive problems expressed as a function of space and time. For example, CNN processors can be used to implement high-pass and low-pass filters and morphological operators. They can also be used to approximate a wide range of Partial Differential Equations (PDE) such as heat dissipation and wave propagation.

I'm interested in reading more about the dynamics of CNNs (particularly their behavior as it pertains to chaotic dynamics), but the article bears no inline citations, and some random Google searching with keywords like "CNN," "neural networks," and "chaos" isn't really turning up too many plausible results. Are there any good references for chaotic dynamics of CNNs? Michael.A.R.Lee (talk) 05:43, 26 January 2018 (UTC)


 * There's a huge list of references at the end of the article. You could try searching on some of the paper titles, with "filetype:pdf" in the search query.  If you just have a DE system you want to solve, you're probably better off with conventional methods.    Fwiw I'm used to CNN meaning convolutional neural network rather than "cellular" (a different thing).  The cellular NN article looks to me like mostly blather describing 1980s-style array processors.  I don't know there's much specific to say about running chaotic dynamics on one, since they sound pretty general.  These days unless you're doing something specialized and have a big budget, you'd probably do that stuff on a GPGPU if you need high performance, or on a conventional computer if your problem wasn't too large.  173.228.123.121 (talk) 08:43, 26 January 2018 (UTC)

Electrical connector plugs for homemade electronics board
Very low-tech question here - hardly computing but I still think this desk will give me the best results. I'm building a model railway and I want to mount all my electronic components (Digitrax block detection units and stationary decoders for point / switch / turnout control) onto a couple of braced plywood boards that will slide into slots in the carpentry and make electrical connections. Are there any suitable rigid plug / connector systems I can use? I reckon I can arrange the board so it will slide in to +/- 1 mm positional accuracy (by careful fitting and possibly dowels fitting into slots). I'm willing to plug in the mains power supply manually but I'd prefer not to have to manually connect plugs carrying track power supply and points control power (and eventually railway signals controls). It's going to be a large railway and each board will need to make at least 40 low-power connections. (It would be far fewer without block detection.) Any advice? Hayttom (talk) 07:43, 26 January 2018 (UTC)


 * For low voltage applications some form of edge connectors with the female end able to shift slightly sideways with a sort of funnel to guide it in could work. As could banana connectors with a small funnel on the female side of things, but with forty connections that is a lot of plugs. Or you could simply have multiple metal strips over the edge of each board (with more distance between them than the expected dimensional accuracy), but that may require you to fasten the board together to ensure connectivity.WegianWarrior (talk) 08:29, 26 January 2018 (UTC)


 * There are several approaches to this, taking a modern view. IMHO, "traditional" model railway electronics is hateful stuff and anything you've seen done before is probably a bad idea. I hope to never solder another D connector and that goes double for the three row 50 pin ones.
 * Also consider whether you're going to exhibit this (i.e. move it immediately before a public display deadline), how often you're going to plug and re-plug, and what the budget looks like.
 * There is no way I'd use baseboard mounted connectors. They're not worth it (the advantages are very minor), they make it awkward to connect, they're prone to damage (almost all will protrude on at least one side) and they're expensive.
 * My favourite way is to just not have so many individual connections. I use Arduineaux and I2C (or similar), so I can run the whole lot over a handful of power and serial pins. This also means I can afford posh connectors, as they're smaller. Mostly though I use "99p from Chinese eBay" metal-cased 8 pins, the sort of thing that used to be used for CB radio microphones - cheap, robust, high current, you can stand on them.  XLR are similar, but better.
 * If you want to stick with multi-pin, then I'd suggest either two row box headers or else DIN 41612. Try CPC Farnell as an easy UK source.
 * Box headers need to be soldered into a PCB (or Veroboard), as the backs of the pins are too short to solder to reliably. There's one header on each baseboard, with a short ribbon cable jumper between. You can make those yourself with some ribbon, IDC connector and a small vice to squeeze them into place. Using Veroboard for termination isn't such a bad thing and encourages reliability. The headers with 'ears' to eject the plug are much more reliable.
 * DIN 41612 aren't often used as free plugs, but you can get them in IDC form too. When I've used them, I bolt them to a small flat handle (fibreglass PCB) and tie or tie-wrap the cable to this. If you can get them with long enough rear solder pins (the old wire-wrap ones were good) you can solder easily to them.
 * For small connections (2 to 4 pin) I use JST connectors, but these do need a crimp tool and they're ridiculously hard to purchase (try eBay). There are dozens of different formats, and few sellers seem to sell both matching halves (!), so be careful.
 * Golden rule though - when you solder to pins on the back of a connector, strain relieve each connection afterwards. Stretchy rubber sleeves are best (you need the magic three-way pliers), or you can use adhesive-lined heatshrink too (unglued heatshrink isn't reliable for this). Andy Dingley (talk) 17:44, 26 January 2018 (UTC)
 * Try buying blank SATA power connectors on aliexpress or ebay. They are cheap, single push action to connect, single pull action to release, unidirectional (impossible to reverse-insert) and you get a good few wires. They are widely used for hard drive hot-swap in the computer server world, so are up to the task of taking some force where appropriate. prat (talk) 23:09, 27 January 2018 (UTC)
 * Thanks, everybody!