The metric system (SI) is awkward to use in some common cases because it requires more digits than Imperial for common precision or range. First, consider temperature. Indoors, 20C can be too chilly, 21C too expensive to heat, and 69F just right. Outdoors, 33F is still above freezing, but the equivalent 0.6C is cumbersome. Next, look at speed and length. On a limited access highway, 100Km/h requires three digits, yet in miles per hour all posted speeds in the US require only two digits. Ten inches spans many more everyday objects than 10cm.
If it saves 4 bytes then the compiler's optimizer needs some improvement. The code as written has some advantages for debugging of control flow at low optimization levels. [I did quite a lot of such by-hand code improvement--25 years ago.]
[ZIP+4] would vastly expand the maintenance of such a table.
Yes, but a tax authority hungry for revenue certainly can afford to do this. 1 employee and 1 PC could take care of all the political subdivisions of a state, with another 1 employee for all other taxing districts. And yes, ZIP+4 does need two more digits (the delivery point) to pin down which house; but then it is unique.
ZIP+4 is a 9-digit code that uniquely identifies a particular delivery point (house or apartment). This code appears on the mailing label of all magazine subscriptions, utility bills, etc., because the United States Postal Service requires large-volume mailers to use ZIP+4 in order to get lower postage rates. ZIP+4 can also be looked up online via http://www.usps.com/zip4/welcome.htm?from=home&pag e=2132findzip . There is exactly one total effective tax rate per ZIP+4.
Just use the ZIP code (postal code) of the delivery address. Make the Secretary of State of each state responsible for creating a table of effective tax rates by ZIP code, and publish it on the web in XML or other easy format. Anyone (including customers) can check the table by themselves. Then file *one* return with your *own* state, which is responsible for settling with the other states, which are responsible for distributing to local jurisdictions.
The banks will use the new rules as an excuse to require Trusted Computing [or other restricted hardware/software] for home users, which in practice will mean some form of MS Windows. No MacOS, no Linux, no BSD, etc.
I live in the area, too; I am disappointed so far. "Hillsboro Airport" (2nd largest airport in the region) is unknown. Schools are unknown by name. It's sort of like a London hack [taxi driver] who is not "on the knowledge." They never get a license just from poring over the map book; they must actually drive the streets, watch the landmarks, etc.
The Secretary of State of each state that has sales/use tax should publish on the web an XML table that gives the rate (xx.xx%), indexing the table by ZIP code (the 9-digit postal code for delivery address.) Any taxing district that wants to benefit must prepare their own table by ZIP code and submit it to their Secretary of State. Using the published table is a "safe harbor" for merchants. Purchasers can check the rates themselves in advance. Taxing districts must keep up with changes in ZIP codes (the USPS adds/changes a couple percent of ZIP codes per year) but residents can keep them honest. This scheme would save the overall economy millions of dollars.
In the US, there is an important exception. If the alleged bad activity involves pollution, then the Resource Conservation and Recovery Act of 1976 ("RCRA": USC 42, chapter 82) applies. It says that a coporate officer will go to jail if the corporation is convicted. Congress had some sense back then.
The Florida Intangibles Tax is a tax on stock ownership, which in effect is a tax on bits because nearly all stock ownership is just an electronic record. (Then there's Oklahoma, whose personal property tax [used to?] require that you list every physical book that you own, and pay tax accordingly.)
Application builders can get some of the protection even on systems that do not use the kernel patch. tub
lets you control mmap(0,...) so that you can put ld-linux.so.2, libc.so.6, and other shared libraries into the ASCII Armor area.
This would be a good time for TASK_UNMAPPED_BASE to become an inherited parameter controlled by setrlimit/getrlimit. It would also be a good time to get a binary structure interface to/proc/self/maps, much like VirtualQuery in Win32.
Better programmers (in any language) typically create and manage appropriate layers of abstraction so that the entire program can be kept in ones head all at the same time. Sometimes the art is in the number of layers (few or many), sometimes it's in refactoring the layers, sometimes it's in the impedance matching between layers, including the layer between the program and the real-world.
The good human can recognize when the algorithm should be tweaked. For example, gzip_x86 decompresses 5% to 45% faster than gzip by focusing on the negative number of bits remaining, and allocating the registers accordingly. A person can ask enough questions to determine that incrementing both sides of a less than preserves the relationship (and then apply transitivity), while the careful compiler is stuck with the possibility of overflow.
Humans also can have a wider range of adaptation to external constraints, for example small space limits on boot loaders. And no compiler known to me has ever on its own initiative recognized and used dynamic code (runtime code generation) where appropriate.
(1) What would you say is a reasonable price for tsprof today?
(2) In the case of valgrind and my other tool, it looks like it takes free software about 2.5 to 3 years to catch up. So such a tool is worth only $30 to $40 per year?
No, "the last touch" and "becoming unreachable" are distinctly different, and a suitable tool could tell the difference. For instance, a memory read operation [in and of itself] cannot cause an allocated block to become unreachable, but it could be the last touch. Think about exactly what causes leaks of allocated blocks.
Linux and glibc impediments to programming tools
on
Valgrind 1.0.0 Released
·
· Score: 2, Interesting
Win32 has a not-so-secret advantage: VirtualQuery(), a random-access, binary structure interface to/proc/pid/maps. It's painful being required to parse a sequential text file that does not quote filenames in order to ascertain the status of the address space.
And wouldn't you really rather be told when the dynamic linker has added or removed modules? The current interface to DT_DEBUG, _r_debug.r_brk, _dl_debug_state might be suitable for a controlling process, but it's painful for a same-process debugger. For instance, on x86 there might be only one byte of code at _dl_debug_state(), so you cannot easily overwrite it with an arbitrary transfer of control. And if you use an int3 and SIGTRAP handler, then you cannot run gdb at the same time.
When pointers are not opaque and/or not traceable except by knowing the additional structure of the allocator (in contrast to the simplicity of malloc/free), then GC presents practical problems.
Even better than the last piece of code to touch the leak, would be the exact instant when the block became unreachable. It can be done!
Market for commercial programming tools for Linux
on
Valgrind 1.0.0 Released
·
· Score: 2, Interesting
I developed a product for Linux/x86 with functionality similar to Purify and valgrind, and offered it for sale three years ago (June 1999) at $99 per user. Market response was underwhelming: in eleven weeks only seven licenses were purchased, and three of those were by competitors or academics who ran the tool only to find out how it worked, and never used it beyond that.
Today BitWagon offers a profiling product tsprof
which requires no recompile and no relink, and handles main programs, shared libraries, dynamic modules, pthreads, and SMP; does direct time and event measurement based on hardware counters (no sampling) and provides highly effective interactive graphic output in addition to tabular text. So far, response again lags. Maybe Rational is onto something.
See http://www.BitWagon.com/tsprof/tsprof.html for info on a process profiler that uses hardware performance counters (with no recompile and no relink) and gives both interactive and text output in tree and flat modes.
The metric system (SI) is awkward to use in some common cases because it requires more digits than Imperial for common precision or range. First, consider temperature. Indoors, 20C can be too chilly, 21C too expensive to heat, and 69F just right. Outdoors, 33F is still above freezing, but the equivalent 0.6C is cumbersome. Next, look at speed and length. On a limited access highway, 100Km/h requires three digits, yet in miles per hour all posted speeds in the US require only two digits. Ten inches spans many more everyday objects than 10cm.
If it saves 4 bytes then the compiler's optimizer needs some improvement. The code as written has some advantages for debugging of control flow at low optimization levels. [I did quite a lot of such by-hand code improvement--25 years ago.]
Yes, but a tax authority hungry for revenue certainly can afford to do this. 1 employee and 1 PC could take care of all the political subdivisions of a state, with another 1 employee for all other taxing districts. And yes, ZIP+4 does need two more digits (the delivery point) to pin down which house; but then it is unique.
ZIP+4 is a 9-digit code that uniquely identifies a particular delivery point (house or apartment). This code appears on the mailing label of all magazine subscriptions, utility bills, etc., because the United States Postal Service requires large-volume mailers to use ZIP+4 in order to get lower postage rates. ZIP+4 can also be looked up online via http://www.usps.com/zip4/welcome.htm?from=home&pag e=2132findzip . There is exactly one total effective tax rate per ZIP+4.
Just use the ZIP code (postal code) of the delivery address. Make the Secretary of State of each state responsible for creating a table of effective tax rates by ZIP code, and publish it on the web in XML or other easy format. Anyone (including customers) can check the table by themselves. Then file *one* return with your *own* state, which is responsible for settling with the other states, which are responsible for distributing to local jurisdictions.
The banks will use the new rules as an excuse to require Trusted Computing [or other restricted hardware/software] for home users, which in practice will mean some form of MS Windows. No MacOS, no Linux, no BSD, etc.
I live in the area, too; I am disappointed so far. "Hillsboro Airport" (2nd largest airport in the region) is unknown. Schools are unknown by name. It's sort of like a London hack [taxi driver] who is not "on the knowledge." They never get a license just from poring over the map book; they must actually drive the streets, watch the landmarks, etc.
The Secretary of State of each state that has sales/use tax should publish on the web an XML table that gives the rate (xx.xx%), indexing the table by ZIP code (the 9-digit postal code for delivery address.) Any taxing district that wants to benefit must prepare their own table by ZIP code and submit it to their Secretary of State. Using the published table is a "safe harbor" for merchants. Purchasers can check the rates themselves in advance. Taxing districts must keep up with changes in ZIP codes (the USPS adds/changes a couple percent of ZIP codes per year) but residents can keep them honest. This scheme would save the overall economy millions of dollars.
For many retail purposes, a phone number is "good enough" as a UID.
In the US, there is an important exception. If the alleged bad activity involves pollution, then the Resource Conservation and Recovery Act of 1976 ("RCRA": USC 42, chapter 82) applies. It says that a coporate officer will go to jail if the corporation is convicted. Congress had some sense back then.
The Florida Intangibles Tax is a tax on stock ownership, which in effect is a tax on bits because nearly all stock ownership is just an electronic record. (Then there's Oklahoma, whose personal property tax [used to?] require that you list every physical book that you own, and pay tax accordingly.)
This would be a good time for TASK_UNMAPPED_BASE to become an inherited parameter controlled by setrlimit/getrlimit. It would also be a good time to get a binary structure interface to /proc/self/maps, much like VirtualQuery in Win32.
Nearly all the prices end in 9, 99, 98, ..., 95 anyway, so just round up. Besides, discussion of commerce is the original fair use exemption.
The good human can recognize when the algorithm should be tweaked. For example, gzip_x86 decompresses 5% to 45% faster than gzip by focusing on the negative number of bits remaining, and allocating the registers accordingly. A person can ask enough questions to determine that incrementing both sides of a less than preserves the relationship (and then apply transitivity), while the careful compiler is stuck with the possibility of overflow.
Humans also can have a wider range of adaptation to external constraints, for example small space limits on boot loaders. And no compiler known to me has ever on its own initiative recognized and used dynamic code (runtime code generation) where appropriate.
Those who actually search for software can also look in freshmeat.net and newsgroup comp.os.linux.announce and linuxapps.com and a buyer's guide.
(2) In the case of valgrind and my other tool, it looks like it takes free software about 2.5 to 3 years to catch up. So such a tool is worth only $30 to $40 per year?
No, "the last touch" and "becoming unreachable" are distinctly different, and a suitable tool could tell the difference. For instance, a memory read operation [in and of itself] cannot cause an allocated block to become unreachable, but it could be the last touch. Think about exactly what causes leaks of allocated blocks.
And wouldn't you really rather be told when the dynamic linker has added or removed modules? The current interface to DT_DEBUG, _r_debug.r_brk, _dl_debug_state might be suitable for a controlling process, but it's painful for a same-process debugger. For instance, on x86 there might be only one byte of code at _dl_debug_state(), so you cannot easily overwrite it with an arbitrary transfer of control. And if you use an int3 and SIGTRAP handler, then you cannot run gdb at the same time.
When pointers are not opaque and/or not traceable except by knowing the additional structure of the allocator (in contrast to the simplicity of malloc/free), then GC presents practical problems.
Even better than the last piece of code to touch the leak, would be the exact instant when the block became unreachable. It can be done!
Today BitWagon offers a profiling product tsprof which requires no recompile and no relink, and handles main programs, shared libraries, dynamic modules, pthreads, and SMP; does direct time and event measurement based on hardware counters (no sampling) and provides highly effective interactive graphic output in addition to tabular text. So far, response again lags. Maybe Rational is onto something.
See http://www.BitWagon.com/tsprof/tsprof.html for info on a process profiler that uses hardware performance counters (with no recompile and no relink) and gives both interactive and text output in tree and flat modes.