Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?

Comment: An alternative (Score 5, Insightful) 572

by pjrc (#48220685) Attached to: FTDI Removes Driver From Windows Update That Bricked Cloned Chips

Today Atmel, Microchip and others make inexpensive microcontrollers with native USB peripherals. The Atmel "8u2" chip, for example, is less expensive than even most of the FTDI clones, and certainly a LOT less than a genuine FTDI chip.

For years, I've published a very simple and easy-to-use USB code for those chips.

I also publish a signed INF installer that works with ALL USB Serial based on this standard protocol (called Communications Device Class, Abstract Control Model, or CDC-ACM). All 3 operating systems have the necessary driver built in. Mac OS-X and Linux load it automatically. Windows needs the user to add a INF.

Sadly, the CDC-ACM driver in Windows (called USBSER.SYS) is buggy. About a year ago, I sent Microsoft this reproducible bug report.

In a follow up email a few months ago, they were supposedly testing a fix. I'm hopeful that Windows 10 may be the first version of Windows to ever ship with a good quality USB Serial driver (as Linux has done for many years, and Apple as done since releasing Lion a few years ago).

Comment: Re:DDR2/3/4 (Score 3, Interesting) 181

by pjrc (#47786861) Attached to: Intel's Haswell-E Desktop CPU Debuts With Eight Cores, DDR4 Memory

Just to put "some time now" the time frame into perspective, the last mainstream PC memory form-factor to use asynchronous DRAM was 72 pin SIMMs.

When PCs went from 72 pin SIMMs to the first 168 pin DIMMs, in the mid-1990s, the interface changed to (non-DDR) synchronous clocking.

Comment: Re:Huh? (Score 1) 406

by cgenman (#47622287) Attached to: Idiot Leaves Driver's Seat In Self-Driving Infiniti, On the Highway

The danger of semi-autonomous vehicles is abuse of Wagnerian music and a mild but dull 5 minutes of YouTube? On a medium full of people ghost-surfing their cars, some guy with a self driving car having it self drive (with nothing bad happen) is pretty low on the overall YouTube of Stupid scale.

Comment: "Emerging Space" (Score 1) 147

Is "emerging space" a synonym for "didn't go anywhere?" As it stands, there is the Ouya, which is dying, a bunch of android consoles dying on the vine, and a Playstation Vita TV, which hasn't caught on enough in Japan to bother shipping elsewhere. As it stands, the only microconsole-like object that is doing OK is Chromecast, and that has nothing to do with games.

Comment: 3D Printing - Anachy ? (Score 4, Insightful) 207

by pjrc (#46800147) Attached to: Cody Wilson Interview at Reason: Happiness Is a 3D Printed Gun

I find it amusing that Anarchy will supposedly spring forth from a technology that depends on highly refined, multi-disciplinary engineering and built from precision materials that are only manufactured and sold at affordable pricing in the context of a highly ordered society.

Comment: Scope usage (Score 3, Insightful) 215

by pjrc (#45477565) Attached to: Ask Slashdot: What's On Your Hardware Lab Bench?

I'm the author of Teensyduino, software for an Arduino compatible board.

I sometimes use my Agilent scope when developing or porting Arduino libraries. Sometimes I just want to check the relative timing of stuff, so I'll set a pin high or low at some point in the code, then capture with the scope to see if the code is taking a long time. Often it's surprising how fast, or how slow certain code can be, and pretty often it's relatively easy to discover and fix performance problems. You can do quite a lot by normal software debugging processes, but pretty much all those approaches involve running the code much slower. When you're debugging real-time code, like libraries that synthesize waveforms by bit-bashing or tricks with timers or DMA channels, there's really no substitute for a good scope.

But admittedly, this is a pretty narrow fringe. Most people probably don't do this sort of low-level coding.

Comment: Re:Too bad it's a C++ library... (Score 1) 147

by pjrc (#45397127) Attached to: WxWidgets 3.0: First Major Release in Several Years

Really, you've written GUI programs using GTK's C-only API and liked it?

Did you really enjoy all that type casting of pointers? That's a lot of unnecessary trouble, when clearly some dialog box must be able to use the more generic window style setting functions. If only the compiler somehow could know your reference to the dialog box is compatible with all that other stuff the dialog box is built upon.... if only....

Comment: Re:But what does it really mean in practice? (Score 4, Interesting) 147

by pjrc (#45397047) Attached to: WxWidgets 3.0: First Major Release in Several Years

I've build programs with wxWidgets 2.8. It does automatically handle those platform specific style issues!

I used wxMenuBar, populated with a heirarchy of wxMenu and wxMenuItem objects. I just pass a point to the main wxMenuBar object to SetMenuBar, which is from the top-level frame of the GUI.

On Mac OS-X, it automatically appear at the top of the screen. One Linux and Windows, it automatically appears on the top of my program's window.

Likewise for toolbars, I simply used with wxWidgets objects as documented, without any specific style stuff. They automatically adapt to fit the style of each system.

That's the magic of wxWidgets. That work you mentioned, adapting things to fit the stylistic expectation of each system, is exactly what wxWidgets does so very well. It's vastly superior to other toolkits which attempt draw their own widgets, because the wxWidgets developers have gone to tremendous effort to actually use the native widgets from each platform. You just use the rather generic API for wxWidgets and you end up with really good native GUIs on all 3 platforms. Best yet, when the user customizes fonts, colors and whatever else, your program adapts like other truly native applications. Other cross platform toolkits fall down in that respect to the customized style, because they aren't really using the platform's native GUI.

Comment: Re:But what does it really mean in practice? (Score 5, Informative) 147

by pjrc (#45396687) Attached to: WxWidgets 3.0: First Major Release in Several Years

I use wxWidgets. Most of my experience is with version 2.8.

If you care deeply about making a native applcation that truly has a native GUI on Windows, Mac and Linux, wxWidgets is great. Nothing else even comes close. Java, QT, XUL, FLTK, TCL/KT and others all produce programs that aren't quite right on some plaforms.

If you don't care about cross platform native GUI applications, or you target browsers with javascript+node+[insert newest buzz], then wxWidgets is not for you. If you really only want to produce a program for Windows but maybe someday have the option to easily port to Mac and Linux, while wxWidgets can give you that, if you don't truly care are doing all 3 from the beginning, I believe you'll find wxWidgets it simply too much trouble.

The truth is wxWidgets is pretty much its own system, an SDK in itself. It has a tremendous amount of somewhat complex design, like sizers, which means you have to go to some extra effort. Of course, for making things work well on all platforms... not simply just work, and not work well on Windows but end up sub-standard on Mac or Linux, but work truly well on all 3, the extra effort to use wxWidgets is definitely worthwhile.

But the truth is you do have to put in extra effort. wxWidgets has great documentation to help, but the other truth is everything is heavily steeped in C++ class heirarchy. If you're good with C++, it'll feel pretty natural. If not, well, you'll get much better with C++ in the process, if you persevere. In the end, if your goal was a native application that truly works natively on all 3 platforms, the sort of thing users take for granted and never notice, you'll be rewarded.

But if you don't really, truly, earnestly care about targeting all 3, if only Windows has to be high quality and the others are afterthoughts, or if you just want to get things done as quickly as possible with minimal learning, you'll probably find wxWidgets to be far too much trouble.

Comment: Re:Is it still relevant? (Score 4, Informative) 147

by pjrc (#45396369) Attached to: WxWidgets 3.0: First Major Release in Several Years

I use wxWidgets. I've mostly used verson 2.8 with ansi strings.

As far as I know, wxWidgets is the only cross platform toolkit that compiles to program that use the native GUI widgets on Windows, Mac and Linux.

You can usually spot Java and QT programs. They work, but things look a little out of place. Firefox does a better job, but things start going wrong if the user customizes or "themes" their desktop. Emulating the look of native GUI controls just isn't ever as good as actually using the native ones.

wxWidgets isn't perfect. I've hit a good number of bugs. It has a pretty steep learning curve. It also doesn't seem like "new" technology. But it works. If you want to write a native application that truly looks and feels and actually is native on each platform, short of writing the code 3 times, wxWidgets is pretty much the only toolkit.

Comment: Re:IMO, it is not going to work (Score 1) 166

by cgenman (#45388643) Attached to: Why Project Flare Might Just End the Console War

For network gaming, physics engines get rewritten with deterministic results. This can include very base-level things like re-writing platform code, as the platforms handle floating point calculations differently.

It takes a lot to get your physics simulation to be deterministic, but every game out there with multiplayer has to do it. Really, it's the player inputs that cause problems.

Comment: Crashplan would be fine (Score 1) 285

by cgenman (#45322483) Attached to: Ask Slashdot: Simple Backups To a Neighbor?

If you don't have an intermediary server, you'll only be able to backup when the receptacle is running. This isn't unique to crashplan, but rather is the nature of direct computer to computer communications. Honestly, Crashplan is the easiest I've worked with.

Alternatively, you can setup an FTP server on their network reasonably easily, and backup to it regularly. This could be a special piece of hardware, like a $200 Synology Diskstation, or a Raspberry Pi with an attached USB drive. Or it could just be a regular computer, though crashplan might be a better option in that case.

You could also do something cheeky if your friend is within wifi range, like giving them a USB drive attached to a router that connects to YOUR Wifi network. Then back up to it as if it were local to your house. But, of course, you're not as protected in that circumstance.

"If truth is beauty, how come no one has their hair done in the library?" -- Lily Tomlin