Rob Pike explains Go at Google: Language Design in the Service of Software Engineering, or, Why go?
Wednesday, December 19, 2012
Thursday, December 13, 2012
Passing of an era: No more i386
Thus spake Linus Torvalds:
Pull "Nuke 386-DX/SX support" from Ingo Molnar: "This tree removes ancient-386-CPUs support and thus zaps quite a bit of complexity: 24 files changed, 56 insertions(+), 425 deletions(-) ... which complexity has plagued us with extra work whenever we wanted to change SMP primitives, for years. Unfortunately there's a nostalgic cost: your old original 386 DX33 system from early 1991 won't be able to boot modern Linux kernels anymore. Sniff." I'm not sentimental. Good riddance.
Tuesday, December 04, 2012
Guicing your jars, part 2
In Guicing your jars I mention using Java's service loader feature to automate finding modules for Guice, along these lines:
public class MetaInfServicesModule extends AbstractModule { @Override protected void configure() { for (final Module module : ServiceLoader.load(Module.class)) install(module); } }
What I did not mention was the secret sauce, Kohsuke's MetaInfServices
annotation processor which creates the META-INF/services
file for you:
@MetaInfServices(Module.class) public class FooModule extends AbstractModule { @Override protected void configure() { // Awesome foo-ness here } }
Now using your Maven runtime dependencies to control the classpath, Guice automatically installs your modules:
Guice.createInjector(new MetaInfServicesModule());
(Dependencies between modules is beyond the scope of this post!)
Subscribe to:
Posts (Atom)