726 karma · joined December 28, 2009
PIGWEED IS HIRING!!!
If you have experience in the embedded space and have an interest in bringing modern software practices to embedded, drop me a note or join our Discord: https://discord.gg/M9NSeTA
Examples of modern software practices we're bringing to embedded include unit testing, languages beyond C like C++ and Rust, binary comms over serial with a structured log & command UI instead of ad-hoc text based command prompts, web-style file watchers, fuzzing for security, sanitizers, automatic code formatting, and more.
Other stuff:
Author of libmv, the structure from motion library used in Blender's matchmoving system: http://code.google.com/p/libmv
One of the primary authors of Ceres Solver: http://code.google.com/p/ceres-solver
Blender contributor (parts of the motion tracking module): http://www.blender.org/
How does it work? astrometry.net uses 4-star combinations to define codes, then indexes the codes on the celestial sphere. The particulars of each of these phases matter, but that's the basic idea.
(1) Execution - A container describing how an OS can load and execute a binary
(2) Linking - A container with relocatable machine code; for the linker to assemble
(3) Metadata for debugging and other purposes like stack traces
Program headers describe "segments". Segments are for the execution time view of the ELF. They describe the parts of the file to load into memory regions, and the execution entry address. The program headers are what are read by the OS when running "./my_executable". The segments don't always have names. Also, it is confusing that "sections" and "segments" mean very different things, but that's just how it is.
Thus, program headers (and the segments they describe) are for #1 - Execution.
Sections are a link-time construct, leveraged by the linker, to decide how to allocate functions and data to the execution segments (via sections). Intermediate ELF object files contain relocatable code, where the code is allocated to sections (you can manually specify them if you want). Example sections include ".text", which is executable code; ".bss" which is zero-initialized static variables; ".data" which is pre-initialized static variables, and so on. You can see an example of sections being allocated to segments in this thoroughly described linker script [1]. Sections are mostly ignored during program execution.
Thus, section headers (and the sections they describe) are for #2 - Linking.
You aren't alone in not knowing these details about ELF. It wasn't until I got into the embedded space that I dug deep to understand linking and loading, linker scripts, and executable formats. These details are important to understand for microcontrollers since you may need to carefully allocate code to physical addresses that have faster memory (e.g. core coupled RAM), or put code in flash. In some cases you execute code directly out of flash (so must tell the linker that including physical addresses); but in other cases, you might need to load code into RAM (manually, there is no OS!) from flash since executing out of flash can be slow. On desktops and servers, it's rare to change (or even know about) linker scripts.
[1] https://blog.thea.codes/the-most-thoroughly-commented-linker...
[1] https://apps.apple.com/app/saga-private-family-podcast/id150...
[1] https://gn.googlesource.com/gn/+/8ce4e49a990c0579ca214ab7967...
The "pw watch" command is an integrated watcher that can detect file changes from e.g. vim, then re-build, re-flash your device, and re-run tests according to the dependency graph. I use 2 or 3 STM32F429i Discovery boards to run tests in parallel.
If you're curious, we're giving a workshop [4] at Hackaday's Remoticon; feel free to join or watch the recording after it's up.
[2] https://pigweed.dev/docs/getting_started.html
[3] https://gn.googlesource.com/
[4] https://hackaday.io/project/175167-remoticon-give-pigweed-a-...
After reading this book, I found myself digging through earnings reports to look for signs of shenanigans, and have found cases that raise my armchair-accountant eyebrows.
[1] https://www.amazon.com/Financial-Shenanigans-Fourth-Accounti...
Locu helps local businesses Get Found. With a patent-pending technology platform that digitizes and structures real-world data, Locu is building tools that help businesses connect with customers. Locu’s content platform is the easiest way for merchants to keep business information, menus and price lists updated and distributed across the Web, and Locu’s API gives developers access to the world's largest real-time, structured repository of local business data. Over 40,000 local merchants are using Locu to promote their businesses online. Locu was founded by MIT graduates and is backed by investors including General Catalyst Capital Partners, Lowercase, Lightbank, and SV Angel. Our beautiful offices are in downtown San Francisco, CA (Union Square) and Cambridge, MA (Kendall Square). Check out photos and learn more about our other perks:
Frontend Engineering
If you are passionate about building products that will touch millions of merchants and hundreds of millions of consumers through the applications powered by our local data APIs, Locu is the right place for you. [JQuery, Less, Django, node.js, etc.]
Backend engineering
We started Locu out of MIT to solve real-world problems by leveraging the latest research in computer science. If you are looking to solve some of the most challenging problems in machine learning, NLP and human computation, you'll feel right at home. [Python, Django, Node.js, Postgres, Redis, AWS, etc.]
Design
We're looking for visual designers who are excited to redefine what the future of local business data looks like across web and print, and to create tools that put modern web technology in the hands of merchants.
Interested? Drop us a line at jobs@locu.com. Please include "[HN]" in the subject of your letter. Learn more about us (now with photos!) at: http://locu.com/about/jobs/
Among the many problems I have with the Microsoft suite, Outlook is at the top of my list for generating the most frustration. GMail's priority inbox and new-style inbox where machine learning is used to sort out mail is a productivity booster for me. With Outlook, I regularly lose important mail because it is buried under the difficult to filter masses of other email.
I could go on about how the lack of robust collaboration facilities are a direct time waster for my team, but I don't want to hijack this thread further...
Locu helps local businesses be found. With a patent-pending technology platform that digitizes and structures real-world data, Locu is building tools that help businesses connect with customers. Locu’s content platform is the easiest way for merchants to keep business information, menus and price lists updated and distributed across the Web, and Locu’s API gives developers access to the world's largest real-time, structured repository of local business data. Over 30,000 local merchants are using Locu to promote their businesses online. Locu was founded by MIT graduates and is backed by investors including General Catalyst Capital Partners, Lowercase, Lightbank, and SV Angel. Our beautiful offices are in downtown San Francisco, CA (Union Square) and Cambridge, MA (Kendall Square). Check out photos and learn more about our other perks: http://locu.com/about/jobs/
Frontend Engineering
If you are passionate about building products that will touch millions of merchants and hundreds of millions of consumers through the applications powered by our local data APIs, Locu is the right place for you. [JQuery, Less, Django, etc.]
Backend engineering
We started Locu out of MIT to solve real-world problems by leveraging the latest research in computer science. If you are looking to solve some of the most challenging problems in machine learning, NLP and human computation, you'll feel right at home. [Python, Django, Node.js, Postgres, Redis, AWS, etc.]
Design
We're looking for visual designers who are excited to redefine what the future of local business data looks like across web and print, and to create tools that put modern web technology in the hands of merchants.
Interested? Drop us a line at jobs@locu.com. Please include "[HN]" in the subject of your letter. Learn more about us (now with photos!) at: http://locu.com/about/jobs/
Locu helps local businesses be found. With a patent-pending technology platform that digitizes and structures real-world data, Locu is building tools that help businesses connect with customers. Locu’s content platform is the easiest way for merchants to keep business information, menus and price lists updated and distributed across the Web, and Locu’s API gives developers access to the world's largest real-time, structured repository of local business data. Over 30,000 local merchants are using Locu to promote their businesses online. Locu was founded by MIT graduates and is backed by investors including General Catalyst Capital Partners, Lowercase, Lightbank, and SV Angel.
Our beautiful offices are in downtown San Francisco, CA (Union Square) and Cambridge, MA (Kendall Square). Check out photos and learn more about our other perks: http://locu.com/about/jobs/
Frontend Engineering
If you are passionate about building products that will touch millions of merchants and hundreds of millions of consumers through the applications powered by our local data APIs, Locu is the right place for you. [JQuery, Less, Django, etc.]
Backend engineering
We started Locu out of MIT to solve real-world problems by leveraging the latest research in computer science. If you are looking to solve some of the most challenging problems in machine learning, NLP and human computation, you'll feel right at home. [Python, Django, Node.js, Postgres, Redis, AWS, etc.]
Design
We're looking for visual designers who are excited to redefine what the future of local business data looks like across web and print, and to create tools that put modern web technology in the hands of merchants.
Interested? Drop us a line at jobs@locu.com. Please include "[HN]" in the subject of your letter. Learn more about us (now with photos!) at: http://locu.com/about/jobs/
int div_by_2(int x) {return x/2;}
compiles to: div_by_2:
movl %edi, %eax
shrl $31, %eax
addl %edi, %eax
sarl %eax
ret
Meanwhile, the signed variant: unsigned int div_by_2(unsigned int x) {return x/2;}
compiles to: div_by_2:
movl %edi, %eax
shrl %eax
ret
My conclusion remains that for hot loops, you should check the compilers assembly to make sure the compiler is applying the strength reduction you expect. San Francisco, CA and Cambridge, MA - Locu is hiring Frontend
Engineers, Backend Engineers and Visual Designers -
Full-time; H-1B OK
Locu is developing technologies to change local search ($35bn
advertising market by 2014) through a number of initiatives
that help local businesses better connect with their consumers.
As part of this vision, we created one of the world's largest
semantically-annotated repositories of real-time small-business
data, which is now distributed and viewable on sites like
OpenTable, Citysearch and TripAdvisor (and more). We recently
launched Locu.com, our local business facing product, that
combines great tech and beautiful design to help local
businesses better manage their online presence.
Our beautiful offices are in downtown San Francisco, CA (Union
Square) and Cambridge, MA (Kendall Square). Check out photos
and learn more about our other perks: http://locu.com/about/jobs/
Frontend Engineering
If you are passionate about building products that will touch
millions of merchants and hundreds of millions of consumers
through the applications powered by our local data APIs, Locu
is the right place for you. [JQuery, Less, Django, etc.]
Backend engineering
We started Locu out of MIT to solve real-world problems by
leveraging the latest research in computer science. If you
are looking to solve some of the most challenging problems in
machine learning, NLP and human computation, you'll feel
right at home. [Python, Django, Node.js, Postgres, Redis,
AWS, etc.]
Design
We're looking for visual designers who are excited to
redefine what the future of local business data looks like
across web and print, and to create tools that put modern web
technology in the hands of merchants.
Interested? Drop us a line at jobs@locu.com. Please include
"[HN]" in the subject of your letter. Learn more about us at
http://locu.com/about/jobs/.
Link (photos!): http://locu.com/about/jobs/ San Francisco, CA and Cambridge, MA - Locu is hiring Frontend
Engineers, Backend Engineers and Visual Designers -
Full-time; H-1B OK
Locu is developing technologies to change local search ($35bn
advertising market by 2014) through a number of initiatives
that help local businesses better connect with their consumers.
As part of this vision, we created one of the world's largest
semantically-annotated repositories of real-time small-business
data, which is now distributed and viewable on sites like
OpenTable, Citysearch and TripAdvisor (and more). We recently
launched Locu.com, our local business facing product, that
combines great tech and beautiful design to help local
businesses better manage their online presence.
Our beautiful offices are in downtown San Francisco, CA (Union
Square) and Cambridge, MA (Kendall Square). Check out photos
and learn more about our other perks: http://locu.com/about/jobs/
Frontend Engineering
If you are passionate about building products that will touch
millions of merchants and hundreds of millions of consumers
through the applications powered by our local data APIs, Locu
is the right place for you. [JQuery, Less, Django, etc.]
Backend engineering
We started Locu out of MIT to solve real-world problems by
leveraging the latest research in computer science. If you
are looking to solve some of the most challenging problems in
machine learning, NLP and human computation, you'll feel
right at home. [Python, Django, Node.js, Postgres, Redis,
AWS, etc.]
Design
We're looking for visual designers who are excited to
redefine what the future of local business data looks like
across web and print, and to create tools that put modern web
technology in the hands of merchants.
Interested? Drop us a line at jobs@locu.com. Please include
"[HN]" in the subject of your letter. Learn more about us at
http://locu.com/about/jobs/.
Link (photos!): http://locu.com/about/jobs/Using simulated annealing to guide random initializations can help find a better minima, but to get the global minima with simulated annealing takes an inordinate amount of time.