Wikipedia:Reference desk/Archives/Computing/2012 April 11

= April 11 =

Constructing a small embedded PC
Once I learned how the bootloaders in smartphones and other devices work (no BIOS, larger than 512-bit limit on traditional PCs, signature checks) I wanted to play around with this on an x86 platform. I determined that I would need a system that does not use a BIOS and looked around online x86 tablets running Android or MeeGo (if it was capable of running Windows then that meant it used a BIOS). I could only find tablets that used Intel processors normally used in PCs telling me they probably used a BIOS. Apple TV and Google TV came to mind, but I found that most x86 TV boxes were locked down. Now, I looked at embedded boards and devices. Toradex's Xiilun PC appeared to be what I was looking for: the Intel Atom E6xx processor comes with non-BIOS options, the casing looked nice, and it didn't have ugly looking VGA outputs. They never mass produced it because of thermal issues. So, how would I go about making a small embedded PC? I do not mean designing it from scratch like OEMs do; just the assembly of a few OTS components. --Melab±1 &#9742; 01:28, 11 April 2012 (UTC)
 * In January of last year, I replied to a similar question; pick your computer carefully. You may find the links in my earlier post helpful.  I highly recommend the DE-2 FPGA dev-board, which I've mentioned in the past; it will allow you to configure your hardware and simulate a CPU and its peripherals, though it requires a little more technical expertise than some microcontroller boards.  You may find the Raspberry Pi a fun board and a cheaper alternative; I have no experience with it, but it's been very popular with hobbyists and students.  Microchip.com sells cheap and simple PIC controllers; I have some Zigbee Raven boards you can buy from atmel.com that were a lot of fun until they broke; and I have a few Renesas M16C cards that were solid workhorses and great utility controllers.  I would trust my life to my M16C controller - which is more than I would commit to for almost any other computer system I've ever worked with.  You need to decide what you want your computer to do, and then spec it out accordingly.  A good real-time system controller will make for a terrible web-browsing experience.  Nimur (talk) 02:23, 11 April 2012 (UTC)

If you specifically want x86 (why???) soekris.com has some nice boards. They probably use bios's that you can bypass or replace with your own. If you just want an ultra cheap 16 bit embedded board, google "ti launchpad". These wouldn't qualify as PC's in any sense (they're just tiny microcontrollers), so it would help if you said what you were trying to do. The Soekris boards are more like PC's. For ARM there is also the beagleboard (beagleboard.org), which is more powerful than the raspberry pi and you can actually buy them today, but they do cost more. 67.117.147.20 (talk) 06:38, 12 April 2012 (UTC)

I may be mistaken but doesn't EFI (and lack of BIOS) depend much more on the motherboard then the CPU? Nil Einne (talk) 11:39, 12 April 2012 (UTC)

C# performance lint
Are there any good programs for C# that can detect fairly basic performance mistakes, such as using long.Parse in a try-catch construct when long.TryParse would work better? Neon Merlin  20:52, 11 April 2012 (UTC)
 * The key terms you're looking for are 'static analysis' (take the source code, identify performance or style problems) and 'profiling' (actually run code, measuring where time is spent). See this StackOverflow thread. Profiling is supported by Visual Studio itself, although there are third-party tools available. 77.97.198.48 (talk) 23:39, 11 April 2012 (UTC)
 * Right, but the example I gave is (at least in its statically detectable form) specific to the .NET Framework, and I don't think any of the static tools on the list are aware of .NET usage issues. Detecting it in profiling would require that the profiler be able to track exceptions specifically. Neon  Merlin  01:06, 12 April 2012 (UTC)
 * Did you actually look at the list? cf FxCop overview 77.97.198.48 (talk) 13:48, 16 April 2012 (UTC)

These programs usually get named some version of "lint" after the original lint (software) for C. If you google "c# lint" it finds some likely candidates for what you are looking for. If you're trying to performance tune a program though, dynamic profiling will probably more useful than linting. 67.117.147.20 (talk) 06:44, 12 April 2012 (UTC)

Why did a new window not open?
I can't remember whether I have asked this, and using Google seems to be of no help.

When I first turn on my computer, and click on the Internet Explorer logo, I am sent to what used to be the sign-in page for the email address given to me by my Internet service provider. I have to click there, and I am sent to the telephone company's home page. If I am already signed in there is a list of emails in my inbox, and clicking on any of those is supposed top open a new window in which the inbox appears.

If that window is already open and I have gone to another site (where I might be editing a Wikipedia page or composing an email), clicking on an email on that telephone company home page causes the inbox to appear in that other window, which wrecks what I was doing. Although once, a new window did open.

I don't know the terminology for what I'm asking. Why does the inbox come up in the window that is already there, though not the window where I clicked to produce it, rather than creating a new window?— Vchimpanzee  ·  talk  ·  contributions  · 21:42, 11 April 2012 (UTC)


 * I apologise, but this bear of very little brain is struggling to understand your description. Maybe you could clarify, in order that I or someone else could help? Here's what I think is going on: You fire up your computer and open Internet Explorer in a single window (window A). You click on a link, and it takes you to a page where you can sign into your emails, or bypasses that straight to your inbox if you're already logged in. When you are logged in and click to open an email, it opens a new window (window B) to show that email. The problem comes if you already have something else going on in window B, because then when you click the email link in window A you are forcefully navigated away from whatever you were doing in window B.
 * Am I describing that right? If so, the numbered steps at this page may be worth a try. - Cucumber Mike (talk) 19:06, 12 April 2012 (UTC)
 * Thank you. I didn't know how to describe it in a way that you would understand, but you finally figured it out. The weird thing is sometimes clicking the mail link gives me a window C. The problem is that in window B, the email or whatever gets lost and I have to start over. I have to remember never to click on that link in window A. I have enountered this in other situations too. Tabs make it more complicated; at a library with Firefox sometimes clicking in window A will open a tab B-2 in window B, not a tab A-2 in window A. Tabs complicate things too much for me which is why I try to avoid them.— Vchimpanzee  ·  talk  ·  contributions  · 20:49, 13 April 2012 (UTC)