Stories
Slash Boxes
Comments

SoylentNews is people

Log In

Log In

Create Account  |  Retrieve Password


Stupid @Scaramucci!

Posted by realDonaldTrump on Monday July 31 2017, @08:25PM (#2536)
3 Comments
Topics

Wow, @Scaramucci is the worst kind of loser -- a total fool. Threw the White House into complete chaos. Screw him, he's FIRED!

Bitcoin segregated witness

Posted by jdavidb on Friday July 28 2017, @07:17PM (#2532)
0 Comments
Code
For anyone interested, this seems to be the most comprehensive and logical explanation and evaluation I have found of the Bitcoin segregated witness proposal that is in the news so much lately: https://medium.com/the-publius-letters/segregated-witness-a-fork-too-far-87d6e57a4179

Coke's Latest Mix of Aspartame and Bubbles

Posted by takyon on Thursday July 27 2017, @10:41AM (#2531)
9 Comments

I decided to ban the transgenders!

Posted by realDonaldTrump on Thursday July 27 2017, @01:35AM (#2530)
4 Comments
Topics

I've been following with great interest and great concern the news about the murder of Dee Whigham, a known transgender. She was stabbed 119 times, and her throat was slashed. It's become clear to me that transgenders cannot defend themselves. How, then, can they defend our great country? After consultation with my Generals and military experts, please be advised that the United States Government will not accept or allow Transgender individuals to serve in any capacity in the U.S. Military. Our military must be focused on decisive and overwhelming victory and cannot be burdened with the tremendous medical costs and disruption that transgender in the military would entail. God bless!

Bit Matrix Transpose

Posted by cafebabe on Monday July 24 2017, @02:20AM (#2527)
3 Comments
Code

I require one common routine which:-

  • Following a principle of consistency to the point of over-use, may be used in conjunction with:-
  • Works on one or more micro-controllers. Ideally, works on broadest range from 8 bit CPU to 64 bit CPU. At minimum, must work on a 32 bit micro-controller and should work on a 16 bit micro-controller.
  • Performs an 8×8 bit matrix transpose operation as efficiently as possible. Efficient is minimum clock cycles and minimum processor registers. Where this differs from energy consumption, energy consumption takes precedence.
  • Works as a building block for larger transpose operations.
  • Works efficiently with 16×18 bit inputs or suchlike.

Implementation contains further documentation:-

begin 644 transpose.c.gz
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
<U?,:_Z_M\@6AD.DH]$]'7T>C?P&?0(9LUBX`````
`
end

Bit matrix transpose algorithm is its own inverse. So, test performs two transpose operations. Test input uses a marching bit test which is a more thorough version of a walking bit test:-

begin 644 transpose-test.c.gz
M'XL(`/QD<ED"`XV1P6[;,`R&[WX*SD$`Q342V6[1`G%V2"^[M+ODL&'+`-66
M$P*2;$C*L*'HNU>T/3?9>I@.$L6/XO^#6B6P10\/PEO\!3LKC.M:)^%S)ZWP
MV!K82>?AD[!&.@?)*EHEP.X7.<]N87>4<-\:UUJ/)[TD2AAUIZ26QCO0PE9'
M-`=X"B*>.C6M[2]Z4/238OM'<>I#&OPV+\!Y87V?G:&IU*F64#I?8[L\?KQ(
MV2!UD8NG_LLJIN>-J64#C]OMUV@6(C2RO\!=-).FQB:*T)`Y-(P"80]56AV%
MA20)\<\%/$<`)^/P8&0-/='7WZC%/M4W0[#^IT3Q5&6IRE-5K*-`M=1.>J:O
M4Y[2D\7Z+'GSE@S9,"^F\@U?J[S,PW9U-7@8248D*ZD^G&]PQ)PP'S$_QT"^
M5;;_L6%962K>6QB!U%7WFXP$@Y.]84WSO-/N*92<H5ZP(,%B%"PN!0&Z\$&^
M8?&<YU]BFI<J]F<=7J*_"[^;^/_$L6%D6W<TU."\M_UAP]_7;P0J$![8'-,Y
?+H)*_S_\'2_#2?L+?8>5_F0-H\IP?P5])VKL/@,`````
`
end

After more extensive testing, code requires something akin to:-

#ifdef __avr
#define REG16 1
#endif
#ifdef __arm
#define REG32 1
#endif

(Usual instructions for uudecode process.)

Rectangular Tuit, Part 3

Posted by cafebabe on Saturday July 22 2017, @10:30AM (#2523)
0 Comments
Software

(This is the 35th of many promised articles which explain an idea in isolation. It is hoped that ideas may be adapted, linked together and implemented.)

I'm working on a 3D surround sound speaker array as part of a larger project. I am also expecting a delivery of 13 Watt quadraphonic audio amplifiers for a tenuously related project. I have immediate tasks to complete:-

  1. Get the micro-controller equivalent of Hello World working. The purpose of Hello World is a tracer which demonstrates a working development environment. For a micro-controller, this is typically a blinking light. This task has eluded me for more than three years and has become increasingly annoying.
  2. Write software to process WAV files:-
  3. Write software to send Ambisonic WAV files to tuit with suitable formatting.
  4. Write software for tuit to drive speakers.

This is very likely to take more than three weeks. I may be off-line for the majority of this period.

Rectangular Tuit, Part 2

Posted by cafebabe on Saturday July 22 2017, @09:01AM (#2522)
0 Comments
Hardware

(This is the 34th of many promised articles which explain an idea in isolation. It is hoped that ideas may be adapted, linked together and implemented.)

In the book: Waldo by Robert Anson Heinlein, a 1950s style workshop (lathe, hammer, saw) is used to make a 1/4 scale matching pair of three finger mechanical hands. This requires the tedious work of drawing wire, winding motors, constructing capacitors and suchlike. A 1/4 scale set of tools is also constructed. Using the hands and the appropriate size tools, 1/16 scale hands can then be constructed. Likewise for 1/16 scale tools. Then, 1/64 scale hands and tools can be constructed. (Incidentally, this process requires very little material. For example, 1/64 scale hammer handle requires very little wood.)

A stable work environment for an Arduino is an analogous problem. While it is possible to install Arduino development software on any system, this is a haphazard approach which can fail at inopportune times. There are also the problems of security and reproducibility. My solution to this problem is pragmatic but far from ideal. Ultimately, chips used in all Arduino designs are proprietary. Deployment of code onto these chips uses avrdude for AVR architecture or bossac for ARM architecture. These handle architectual quirks, such as EEPROM partitioning, EEPROM privileges as seen from the running code and recovery from failed programming cycles. I also assume conversion of ELF blobs to raw binary occurs at this stage but I have seen no mention of this process. Regardless, all of this occurs over a virtual serial port over USB which itself is poorly defined. The implementation may involve an FTDI serial adapter or functional equialent and therefore safe and continued use is mutually exclusive with Microsoft Windows drivers.

For development of a speaker array, the solution to this mess is as follows:-

  • An arbitrary computer with wired Ethernet. I'm using a donated laptop without any storage except 4GB USB storage containing TailsOS. This computer is only used as a screen, keyboard and SSH client which is thankful because it has a dodgy power connector, systemd and a GUI which is worse than Ubuntu's hateful default.
  • A Raspberry Pi with 8GB MicroSD storage. Variant is unimportant. Primary instance was an old model donated by a children's coding academy. The hot spare belongs to an ex-colleague who is avoiding me. This runs the Jul 2017 release of Raspbian. For my sanity, systemd has been replaced with fully patched simple-init which runs unchanged on all versions of Raspbian released over the last three years. I also note that simple-init correctly handles CVE-2017-9445, unlike systemd.
  • A clone Arduino Due. Also known as a rectangular tuit due to its mind-focussing ability.
  • SPI DACs to arrive within two weeks. These are slightly more expensive than I2S DACs but do not require a continuous bit rate. Therefore, SPI DACs are more suitable for bit-banging techniques which match or exceed the 25Mb/s required for 32 channel audio. For testing, Microchip MCP4921 12 bit SPI DACs will be used with PAM8403 amplifiers. For deployment, Analog Devices AD1952 24 bit SPI DACs will be used with LM741 amplifiers.
  • For testing, cheap speakers will be purchased from retailers. These will be replaced with cube speakers despite their known limitations.

The advantages of this arrangement are numerous:-

  • System is portable and can be demonstrated at any location.
  • System is fairly well air-gapped and can be used off-line.
  • No software updates are required during the development cycle.
  • Can use any choice of text editor.
  • One step build with make.
  • Hedged against most hardware failures with the exception of the Arduino Due development board.
  • Backup of work requires an incremental tar. Total size of one backup will never exceed 8GB.
  • Deliverable is source code which runs on hardware available from multiple manufacturers and multiple vendors.

Prosthetic Penis Sex Attacker Jailed + Other Stories

Posted by takyon on Friday July 21 2017, @05:38PM (#2521)
8 Comments
/dev/random

No, it's not Ethanol-Fueled. But it is relevant to Ethanol-Fueled.

Prosthetic penis sex attacker Gayle Newland jailed

I understand Gayle Newland’s impulse to catfish – I posed as a man online for sex

Continuation of Doctor Who freakout:

Two former Doctors clash over Jodie Whittaker casting

Bad Western cultural influence excised from China:

Justin Bieber banned from China for 'bad behaviour'

Japan's First Lady trolls God Emperor Trumpu-jiichan?

BBC, LA Times, Newsweek, and The Guardian.

How OJ Simpson paved the way for Donald Trump

Rectangular Tuit, Part 1

Posted by cafebabe on Friday July 21 2017, @02:42AM (#2518)
2 Comments
Hardware

(This is the 33rd of many promised articles which explain an idea in isolation. It is hoped that ideas may be adapted, linked together and implemented.)

I'm working on a 3D surround sound speaker array. I received a clone Arduino Due about a week earlier than expected. This has put me in a moderate panic in which I have a depreciating asset which is not working. I've been jolted into resolving loose ends, such as Voltage levels, API and object code deployment. From personal experience and with sincerity, I recommended acquisition of a vintage round tuit. Well, I'm going to consider an Arduino Due as an even more effective Rectangular Tuit.

This tuit is about the size, power and price of a Nokia 3210. Unlike many credit card computers, it does not require a storage card during operation. Instead of screen, keys and radio, there are about 50 I/O lines. Operating system overhead is optional. Therefore, it is expected that timer interrupts at 48kHz will be the highest priority interrupt (or second highest if USB communication takes precedence.) 84MHz divided by 48kHz is exactly 1750 processor ticks per sound sample. Within this period, a processor must:-

  • Context switch.
  • Maintain a large circular buffer of sound samples received from host.
  • Maintain a small circular buffer of sound samples taken from the large buffer for the purpose of compensating for differing speaker distance.
  • For each speaker, obtain a historical sample from the small buffer where time delay compensates for speaker distance.
  • For each speaker, for each channel, multiply and add each historical sample against values which are pre-computed to cover speaker angle, speaker distance and master volume.
  • Bit-bang values to 12 bit, 16 bit, 18 bit or 24 bit DACs. It may be worthwhile to interleave multiplication and bit-banging so that signals appear on outputs for maximum duration.
  • Bit-banging of cell networking may also occur.

It may be useful to vary this process for 192kHz monophonic sound or suchlike. Regardless, with available processing power and I/O, it may be possible to drive 64 speakers and/or multiple sets of headphones. Each set of headphones may have accelerometers and/or Hall effect devices for the purpose of maintaining Ambisonic sound-stage position.

Unfortunately, timing is complicated by the Arduino API which only permits timers to be specified to the nearest microsecond (rather than nanosecond). Therefore, it may be easier to play sound in multiples of 50kHz. The alternative is patch the Arduino libraries or implement a system which plays samples slightly too fast. The pitch shift would be approximately 0.2% but I find it less tacky to omit or repeat 1:600 samples or so rather than endure a pitch shift.

There are further limitations. The tuit uses a different instruction set to other Arduino boards. Support is greatly restricted. The Jul 2017 release of Raspbian doesn't work with the tuit. Nor is it available from an Ubuntu Linux desktop which was configured to install everything. However, it appears that using a hateful IDE is definitely optional.

Typically, micro-controller development uses an IDE. This may be Eclipse, Atmel Studio, Arduino's IDE or something else. I vastly prefer to be unconstrained by text editor. This should be the norm when using serial line programming (or virtual serial port programming tunnelled over USB). However, it is now custommary to have configuration within an IDE to specify virtual serial port name and invoke an external chip programming utility from a menu item.

For Atmel AVR chips, avrdude appears to be the default choice. For Atmel ARM chips, bossac performs the same function - or not if distributions don't have the configuration. Either way, I'd prefer to perform these steps via a Makefile. In addition to simplifying deployment, it fixes problems with deployment speed.

O.J. Simpson Granted Parole

Posted by takyon on Thursday July 20 2017, @07:59PM (#2517)
1 Comment
News

Parole board votes to release O.J. Simpson from prison in October

Also at BBC, Bloomberg, Reuters, Vice, and CNN. Wikipedia.

The OJ Simpson trials: Where are they now?

One thing to note is that despite a $33.5 million civil judgment against O.J., retirement income is protected under federal law.

Don't forget O.J.'s greatest gift to mankind. One national treasure begets another.