Saturday, June 29, 2013
Wednesday, June 19, 2013
Open street maps data
Openstreetmap.org provides the same service as Google Maps, but as an open-source project. Very, very nice! Listed under data science because I don't have a better place for public databases.
Don't check - tell, in Ruby
Here's a neat idiom: instead of checking for a null pointer return, use a do construct in Ruby to either act on the return or not (if it's null). Very slick and elegant.
Business process simulator
I'm not 100% I'd call this a business process simulator - it's really a queuing theory simulator, maybe. But whatever it is, it's damn cool.
Saturday, June 15, 2013
Offbrand: useful data structures for C
This is kinda neat. It's a ... library-making system, effectively, that provides generic data reference-counted data structures for C that can be instantiated on the fly.
Good sources for security knowledge
So there's an online course coming up on Web security, and HNN weighs in with useful resources for people interested in this stuff.
Using metadata to find Paul Revere
Analysis of membership data to find influential colonial terrorists.
Friday, June 14, 2013
Logic programming
It's either overrated or underrated, but it's definitely of interest in Clojure (core.logic) and Scheme (the Reasoned Schemer), and I want to learn more at some point when I eventually get translation automated to the point that I can earn money while working less.
Saturday, June 8, 2013
A possible way to combine the command line with Wx
Something that's bothered me for a while with Perl/Wx programming is that I'd really rather have a terminal that's easy to manage for command input. Since the DOS box is right there, it's irritated me that I can't just use it.
Maybe I can: Perlmonks from 2010. Then combine that with AnyEvent::Run for starting other programs...
Maybe I can: Perlmonks from 2010. Then combine that with AnyEvent::Run for starting other programs...
Generators come to JavaScript
Python has had generators for a while now, and now they're in JavaScript too. (No real browser support yet, of course.)
I don't think generators are possible to express in Perl. Well. Kind of: Compile::Generator does it with a source filter. Aaand Coro::Generator uses coroutines (Coro)
Software Transactional Memory
STM is the software transactional memory being written for PyPy to support robust threading. I include it here because it's being implemented as a standalone memory manager and that strikes me as pretty rad.
Maybe I should consider writing a virtual machine. It could have this kind of thing in it. How high a level would be appropriate? That's an interesting question.
Maybe I should consider writing a virtual machine. It could have this kind of thing in it. How high a level would be appropriate? That's an interesting question.
Monkey
An automated bug report system for C. I'm not sure whether it's linked into your program or what, but I just like the idea of getting data back about usage.
The "rope" data structure
Here's an efficient way to store long strings that are changing dynamically; most operations are O log n. Useful for text editors and that sort of thing.
Victorykit
Victorykit was/is Aaron Swarz's political tool. (I wanted to call it a platform - but it's not a political platform! ... Or is it?) I think it may have been written based on email he'd exchanged with Cory Doctorow (fourth paragraph here).
Confidential data
Here's an idea. If we build strong typing into a language, why can't it be a kind of attribute thing? Then the toolchain could be told that a given string contains data that should be treated confidentially, for example, because it is personal data under European law. Bug reports could automatically anonymize it then.
I'm increasingly starting to see how strong typing is actually a form of annotation that allows limited automated reasoning about the code. As somebody said recently (can't remember where I read this), just because Java typing is so onerous doesn't mean you should throw the baby out with the bathwater. The more logic is made transparent and amenable to simple automated tools, the better - it's when it starts getting in the way that you have troubles.
I'm increasingly starting to see how strong typing is actually a form of annotation that allows limited automated reasoning about the code. As somebody said recently (can't remember where I read this), just because Java typing is so onerous doesn't mean you should throw the baby out with the bathwater. The more logic is made transparent and amenable to simple automated tools, the better - it's when it starts getting in the way that you have troubles.
Friday, June 7, 2013
Newsdiff
Here's a tasty little treat: diffs of news on websites to track silent changes. Filed under journalism, although it's really metajournalism.
PHP encoded malware
Here's a cool one: a single (long) line of injected PHP that unpacks to a little porn server that retrieves its porn from elsewhere. Neat attack. How it gets injected I don't know, but in that discussion this other thing came up: an Apache exploit that doesn't change the filesystem at all - it patches the live httpd process. That's freaking cool! It would be pretty brittle, though; recompile with some minor changes and it's not going to work. Monocropping is a bad thing.
Tuesday, June 4, 2013
Probabilistic Programming and Bayesian Methods for Hackers
A book/tutorial on Github. I ought to work through it.
Sunday, June 2, 2013
Scraping project: FictiveKin's recipe project
FictiveKin is trying to restore the glory of Punchfork, a recipe site that unceremoniously shut down without warning or backup, starting with the scraping of publicly available recipes. If I get some time, I'd like to help. Each publisher needs a separate scraper.
scikit-learn ML in Python
Python really is winning in the scientific programming arena. The ML module of choice is scikit-learn.
Saturday, June 1, 2013
Subscribe to:
Posts (Atom)