Google does ads. FB does social. They're moving towards each other. These G+ problems? Mark my words: Google's Achilles heal for ever.
333 karma · joined October 25, 2013
Google does ads. FB does social. They're moving towards each other. These G+ problems? Mark my words: Google's Achilles heal for ever.
http://www.w3schools.com/browsers/browsers_stats.asp
And there's also Google trends.
I did some serious optimization when I wrote it. There was a "best practices" for V8 that shedded some light on the background of JS variable allocation, I followed it and got a serious boost. Also did lookup tables instead of runtime math with exp/log functions. But in the end: hit several worst case images that took more than 12s, which was a gap that couldn't further be reduced through optimization.
But you're absolutely right, I should redo it in PNaCl.
By fertile pasture I mean that both malevolent and benevolent communities will support this. This could see a lot of optimization if open sourced (is it?).
Edit: to elaborate: do a simple simulated annealing on a 200x200 array in JS - it's measured in seconds on my laptop. I wrote a program in JS that did this (image segmentation, fg/bg seperation for recognition) and abandoned it because of speed issues.
Samsung Galaxy S1:
http://www.techinsights.com/uploadedImages/Public_Website/Co...
The internal battery is located at the top-right - a circular coin cell soldered to the board.
Samsung Galaxy S2:
http://i295.photobucket.com/albums/mm148/rprosperojr/IMG_120...
The internal battery is located at the center-top
Edit: In case of the SGS2 it's located next to the WLan/BT module.
- Many of them come across hardware errors or suboptimal designs during a later stage in the FW development. In most cases they hack a workaround that doesn't involve a redesign to be able to move on with the next item on the list. Folks higher up the chain of command see this as an excuse to avoid a redesign: "we're not going to do a redesign for that, Mark fixed it in software". Examples: pretty much every ARM System Board out there.
- Someone picked a device that was available during the design phase, but went EOL a few months later before production. It happens.
- Someone found a cheaper device than originally planned but it doesn't really do what it says on the box. Typically peripheral stuff like ethernet or usb.
- And here's the big one: !!Crappy Datasheet!! Some companies, some really really big IC companies produce crap datasheets. Yo get accustomed to the fact that this new Cortex-M µC will probably have an errata or updated datasheet every few months.
- the redesign fixed their EMC problem to get the certificate, someone fixed the power supply. But now you get into trouble if you drive this and that device because the voltage takes a dip.
But I'd like to add: I agree with your post.
Not looking for work atm, so my advice: this is not your problem.
If you need an example, Google "TFK426". No, it's not a tuning fork, it's an 8-pin DIL.
Same goes for the brokers: "SAA1084P".
Those are just 2 examples I found last Friday. They're components on an old PLC I need to fix and they're just laughing in my face. I suspect they're opamps but I'll probably never know and I'll end up telling someone to just buy a new system.
http://gizmodo.com/5943238/helium+filled-hard-disks-less-dra...
I don't think it took them 10 years to figure it out. It's probably only now that the cost is justifiable when compared to other techniques that increase capacity.
Take this straight forward camera sensor:
https://www.sparkfun.com/products/retired/8668
If you look at the datasheet, there's a control interface (I2C), various clocks and a data interface (DOUT0-7). The clock minimum is ~6 MHz, so no biggy and suited for embedded systems. Until you start to work out the details: you need to send commands, read in a hefty datastream and do something with it (like writing to storage). That means you either write out the pixels as they come in, or you buffer an entire picture (or large part) and then write it out.
The first solution means that you'll need an embedded system with a clock that has an integer amount times the minimum clock for the sensor (you need to do stuff between different moments when data comes in).
The second solution means a large amount of RAM (think order MBit).
Embedded systems never scale the way you'd like them to, typically everything scales in one go. You want more internal RAM? Well, we also scaled this and that even though you won't need it, and it's 32-bit now instead of 8- or 16-bit. You want external RAM? Well here's an IC with the extra pins and an FSMC but it also has more Flash than you'll need and it comes with USB hardware you won't need. Result: more $ per unit even though you'll only need 40% of its functionality.
There's also an additional problem: This type of control from one single-core system will mean that you're going to write very dense code loops that won't be very happy about exceptions (e.g. flash write delays).
What you need in this kind of systems is a parallel approach:
- 1 core to do the I2C (very low requirement)
- 1 core to check the timing for your output stream (straight forward logic)
- several cores to read/process/filter the incoming stream (follow the datasheet)
- several cores to store everything in temporary external RAM on the fly (lockstep)
- one or more arbiters to tie everything together (the challenging part)
An 144 core system like this would be severely underemployed for this type of camera sensor. You could scale up the sensor to very high performance cameras.
accelerometer: is very low bandwidth (think ~10-1000 measurements per second). The noise is ~100μg/√Hz - with 12 bits samples I'm not sure you'll pick up HDD vibrations (but rather easy to test).
Someone should lend the people researching this an oscilloscope.
- there's a very good chance that the touch-pad in your new laptop uses the PS/2 protocol to communicate with the system
- why do I need to address cylinders/heads/sectors in a flash block device? I can understand sectors (block addressing) but cylinders and heads? It's FAT/EXT4 legacy, but the translation layer is still there in many OS-es.
- I recently wrote a driver for an LCD. I could have sworn I was accessing a CRT: front porch, h-sync pulse, back porch, v-sync, ...
Which one would perform best?