Gawking Text Files

Some tools in a toolbox are versatile. You can use a screwdriver as a pry bar to open a paint can, for example. I’ve even hammered a tack in with a screwdriver handle even though you probably shouldn’t. But a chainsaw isn’t that versatile. It only cuts. But man does it cut!

aukAWK is a chainsaw for processing text files line-by-line (and the GNU version is known as GAWK). That’s a pretty common case. It is even more common if you produce a text file from a spreadsheet or work with other kinds of text files. AWK has some serious limitations, but so do chainsaws. They are still super useful. Although AWK sounds like a penguin-like bird (see right), that’s an auk. Sounds the same, but spelled differently. AWK is actually an acronym of the original author’s names.

If you know C and you grok regular expressions, then you can learn AWK in about 5 minutes. If you only know C, go read up on regular expressions and come back. Five minutes later you will know AWK. If you are running Linux, you probably already have GAWK installed and can run it using the alias awk. If you are running Windows, you might consider installing Cygwin, although there are pure Windows versions available. If you just want to play in a browser, try webawk.

Continue reading “Gawking Text Files”

1000 CPUs On A Chip

Often, CPUs that work together operate on SIMD (Single Instruction Multiple Data) or MISD (Multiple Instruction Single Data), part of Flynn’s taxonomy. For example, your video card probably has the ability to apply a single operation (an instruction) to lots of pixels simultaneously (multiple data). Researchers at the University of California–Davis recently constructed a single chip with 1,000 independently programmable processors onboard. The device is energy efficient and can compute up to 1.78 trillion instructions per second.

The KiloCore chip (not to be confused with the 2006 Rapport chip of the same name) has 621 million transistors and uses special techniques to be energy efficient, an important design feature when dealing with so many CPUs. Each processor operates at 1.78 GHz or less and can shut itself down when not needed. The team reports that even when computing 115 billion instructions per second, the device only consumes about 700 milliwatts.

Unlike some multicore designs that use a shared memory area to communicate between processors, the KiloCore allows processors to directly communicate. If you are just a diehard Arduino user, maybe you could scale up this design. Or, if you want to make use of the unused power in your video card under Linux, you can always try to bring KGPU up to date.

Graphene Optical Boom Emits Light With No Diode

When a supersonic aircraft goes faster than the speed of sound, it produces a shockwave or sonic boom. MIT researchers have found a similar optical effect in graphene that causes an optical boom and could provide a new way to convert electricity into light.

The light emission occurs due to two odd properties of graphene: first, light gets trapped on the surface of graphene, effectively slowing it down. In addition, electrons pass through at very high speeds. Interestingly, the speeds are nearly the same–that is, electrons and trapped light travel at almost the same speed. The researchers found a way to make the electrons move faster than the speed of light (in the graphene) and thus created Cerenkov emissions. Because of the structure of graphene, the resulting light is intense and tightly focused.

The researchers speculate that this technique could be important in building graphene-based optical chips. We’ve talked about mixed graphene and semiconductor chips before. Graphene is pretty exotic stuff. It can even fold itself.

No Frame Buffer For FPGA VGA Graphics

Usually, when you think of driving a VGA–in software or hardware–you think of using a frame buffer. The frame buffer is usually dual port RAM. One hardware or software process fills in the RAM and another process pulls the data out at the right rate and sends it to the VGA display (usually through a digital to analog converter).

[Connor Archard] and [Noah Levy] wanted to do some music processing with a DE2-115 FPGA board. To drive the VGA display, they took a novel approach. Instead of a frame buffer, they use the FPGA to compute each pixel’s data in real-time.

Continue reading “No Frame Buffer For FPGA VGA Graphics”

Linux: Assembly Required

Sometimes you might need to use assembly sometime to reach your project objectives. Previously I’ve focused more on embedding assembly within gcc or another compiler. But just like some people want to hunt with a bow, or make bread by hand, or do many other things that are no longer absolutely necessary, some people like writing in assembly language.

In the old days of DOS, it was fairly easy to write in assembly language. Good thing, because on the restricted resources available on those machines it might have been the only way to get things to fit. These days, under Windows or Linux or even on a Raspberry Pi, it is hard to get oriented on how to get an assembly language off the ground.

Continue reading “Linux: Assembly Required”

Open Source Cloud Chamber

If you are a certain age, there were certain science toys you either had, or more likely wanted. A chemistry set, a microscope, a transparent human body, and (one of several nuclear toys) a cloud chamber. Technically, a Wilson cloud chamber (named after inventor Charles Wilson) isn’t a toy. For decades it was a serious scientific tool responsible for the discovery of the positron and the muon.

The principle is simple. You fill a sealed chamber with a supersaturated water or alcohol vapor. Ionizing radiation will cause trails in the vapor. With a magnetic field, the trails will curve depending on their charge.

If you didn’t have a cloud chamber, you can build your own thanks to the open source plans from [M. Bindhammer]. The chamber uses alcohol, a high voltage supply, and a line laser. It isn’t quite the dry ice chamber you might have seen in the Sears Christmas catalog. A petri dish provides a clear observation port.

We’ve covered cloud chamber builds before, ranging from the simple to ones that use thermoelectric coolers.

GNU Radio For Space (and Aircraft)

GOMX-3 is a CubeSat with several payloads. One of them is a software defined radio configured to read ADS-B signals sent by commercial aircraft. The idea is that a satellite can monitor aircraft over oceans and other places where there no RADAR coverage. ADB-S transmits the aircraft’s ID, its position, altitude, and intent.

The problem is that ADS-B has a short-range (about 80 nautical miles). GOMX-1 proved that the signals can be captured from orbit. GOMX-3 has more capability. The satellite has a helical antenna and an FPGA.

Continue reading “GNU Radio For Space (and Aircraft)”