148 karma · joined February 20, 2007
Are you using concolic execution, or thinking of going in that direction as a way of generating more runtime-specific info, e.g. execution interleavings, data sharing, common values for memory locations, hot paths, etc.
I suppose a bunch of this is probably outlined in your API or integration with one's build system, but it would be great if a lot more about the process and capabilities of this system were detailed up front. For example, I think it would be useful to make some case studies of some programs, in a similar way that the Viva64 guy does for PVS-Studio, as a way of showing people how to use your system effectively.
Otherwise, I find the traces hard to digest. Unless there is some better interface for reading things, I think it would help convince people that your product is useful if, for example, your system reported the bugs it found in a very clear way. If debug info is in the binary then that should also be referenced, etc.
Finally, a passing note: I think your biggest "competitor" is going to be a tool like AddressSanitizer and other compiler extensions. I mean, I know solving more bugs is good for everyone and whatever gets the job done means better code out there, but I assume eventually you need to make money and convince people that you're going to solve a problem that a compiler extension can't. This is kind of the situation for DBT systems now :-P
http://pear.warosu.org/c++filtjs/
This can be used to demangle C++ names.
Are you willing to spend another 3 minutes producing a logo for an unrelated programming project? :-P
In the former case, the query is verifying that the object_id field cannot be used to find a foreign object--regardless of the value of object_id. This is exactly what it is asked to do.
In the latter case, the query is simply verifying that object_id is NULL, which is exactly what it's asked to do.
I really enjoyed House of Cards. Lilyhammer was pleasantly surprising and I'm looking forward to future seasons. I recently tried watching Hemlock Grove and that was awful. I'm sceptical of Arrested Development: I loved the original, but it's been a long time and I feel like it's time to move on.
Otherwise, I find Netflix to be attractive in cycles. Every now and then, I will discover a bunch of new things (be it movies or TV shows) and binge watch them, and then I feel like there nothing left on Netflix. I keep paying on "down periods" because I like there is a sense of security because I have a high quality / stable streaming service available to me. Then, after a few weeks, I eventually return to Netflix for more binge viewing.
The main focus of the DBT tool is Linux kernel modules, but let me know the kinds of stuff you need it for and I can a) figure out if my tool is applicable, and b) perhaps share the code.
First, the one thing I don't like with the normal AirBlade is the tendency for the water to drip off your hands, onto it, and then to pool below it on the floor. Not much water, mind you, but enough to make both the floor and the plastic onto which the water first drips a bit nasty (in some places). This might just be a cleaning issue in said places, though.
Second, the one mistake I hate seeing washrooms make is to have a tiny faucet where, in order to get your hands properly wet, your hands are almost forced to run into / touch the back of the sink.
Idea Suggestion 2: Color coding. Use a highlighter to color in buttons in some color. Your app would automatically recognize things of that color as buttons, and potentially erase the color in the "finished" prototypes.
[1] http://www.ioreader.com/2011/03/15/pattern-matching-in-grail
In one project, I implemented an EDSL for performing a destructuring bind on a string (CFG production, actually). The types of the components of the pattern determined what the pattern would actually match.
This was all done in a previous version of C++, so I didn't have variadic templates available. I also didn't want to heap allocate the internals of patterns.
What I did was to store an array of void pointers and a function pointer as private fields within a pattern class. When constructing the pattern, pointers to the things to which parts of the string to be bound were put into the array, thus throwing away their types. BUT, the function pointer pointed to a static method in of a class template, which only operated on the array of void pointers in a type-safe way, precisely because it was compiled with the knowledge of the types.
I use this type of subversion when appropriate, and it's often a very convenient solution to an otherwise tricky problem. Such a thing would either not be possible--or be incredibly inconvenient--in C. It's often very useful to treat different stuff uniformly, knowing that your abstractions can maintain type safety.
The lower bound is linear in the length of the route if all routes participate in your regular expression and if you have it pre-compiled to, for example, a DFA or an LL parser ahead of time.
What are these "improvements" in expressiveness being compared to? Certainly not C or C++, as the initial problem isn't an issue, and the proposed solution is possible.