Saturday, 1 September 2012

fun with self-signed certs and java and maven again :S

I've been deploying maven artifacts all day and suddenly it stopped working (later I realized that I happen to apt-get update java in between).

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project browser-cookies: Failed to deploy artifacts/metadata: No connector available to access repository xxx.xxx of type default using the available factories WagonRepositoryConnectorFactory -> [Help 1]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

So after googling a bit I though wagon might be the problem again so I added the following to my pom:


...


org.apache.maven.wagon
wagon-ssh
2.2

...


But my problems didn't go away:(
Then I realized that since I just upgraded my java, that my company maven repo's certificate may not be installed anymore..

I tried to install it with the normal way:
java -jar import-ssl.jar server [https://YOURSERVERURL] 

java -jar import-ssl.jar server maven.example.com $JAVA_HOME/jre/lib/security/cacerts

But this resulted in the following error:

Loading KeyStore /usr/lib/jvm/java-7-oracle/jre/lib/security/cacerts...
Setting up SSL...
Opening connection to https://maven.example.com:443...
java.net.UnknownHostException: https://maven.example.com

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)
at sun.security.ssl.SSLSocketImpl.(SSLSocketImpl.java:407)
at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:88)
at com.sonatype.component.ssl.imprt.ImportServerCertificates.doImport(ImportServerCertificates.java:154)
at com.sonatype.component.ssl.imprt.ImportServerCertificates.run(ImportServerCertificates.java:66)
at com.sonatype.component.ssl.imprt.Main.main(Main.java:51)

I was puzzled because this worked fine with java-6-openjdk-amd64,  but not with java-7-oracle. For kicks I tried the IP address and guess what it worked!!!!

java -jar import-ssl.jar server 192.0.2.1 $JAVA_HOME/jre/lib/security/cacerts 

Loading KeyStore /usr/lib/jvm/java-7-oracle/jre/lib/security/cacerts...
Setting up SSL...
Opening connection to 192.0.2.1:443...
Starting SSL handshake...

Some SSL certificates appear to be missing. Adding missing certificates...

Server sent 1 certificate(s):
 1 Subject CN=maven.example.com, O=MyCompany, L=Johannesburg, ST=Gauteng, C=ZA
   Issuer  CN=maven.example.com, O=MyCompany, L=Johannesburg, ST=Gauteng, C=ZA

Added certificate to keystore using alias: '192.0.2.1'


But alas I could still not deploy :'(
I threw my toys out of my cot, took a deep breath, bathed my 19 month old son, came back and realized what my problem was:

I put a nasty safety mechanism into my corporate poms to prevent us from deploying stuff to the wrong repository (eg. deploying private source files to a public repository!). Anyways I now added a BIG glaring message for myself for when this happens again:

 NB!


 NB! REMEMBER TO SPECIFY -Dew.deploy-public TO DEPLOY THIS PUBLICLY OR -Dew.deploy-private TO DEPLOY THIS PRIVATELY


Don't say I didn't try to tell you!!!!?! 

Sunday, 10 June 2012

Simple Digital On Off Cycler V1-A30m in Beta

On my Saturday I made this device which is the first actually useful thing I made with my Arduino (aside from a tiny programmer and a energylogger which haven't really been used).

It is a VERY simple thing that just switches some 220V AC power on and off on a 30 minute cycle. In beta testing I'm just turning a light on and off:

The main reason I made this is that the Vaporizer in my son's room empties halfway through the night on it's minimum setting, so with this I can switch it on on a half-hourly cycle so that it will last the night.

Let me know if you want one, I'll sell these if there is interest :)


It even has 2 LED's for debugging. The green one is on while it gives power out. The yellow one blinks 100 times each cycle (so if the cycle is 30 minutes, it is on for 9 seconds and then off for 9 seconds and so on).


I tested and measured over and over again to make sure it is safe, but I'm just an amateur electronics guy hacking away, so I should get this reviewed to make sure I don't burn my house down when leaving it on over night.


To my wife's dismay I made quite a mess, but I cleaned up nicely afterwards :)


When I did the tiny programmer I went straight from the breadboard to veroboard, this time I wrote down the design and I think in future I should really try to draw and lay it out on DipTrace first. This is open hardware, so here is the design and code so far:


==
#define BLINK_PIN 13
#define RELAY_PIN 12
#define MULTIPLIER 100

int cycleSeconds = 30*60;
int sleepMS = round(cycleSeconds * 1000 / MULTIPLIER / 2);
int counter = 0;
int blinkLevel = LOW;
int relayLevel = HIGH;

void setup() {                
  pinMode(BLINK_PIN, OUTPUT);     
  pinMode(RELAY_PIN, OUTPUT);     
  digitalWrite(RELAY_PIN, relayLevel); // start on
}

void loop() {
  if (blinkLevel == LOW)  {
    blinkLevel = HIGH;
    counter += 1;
  } else {
    blinkLevel = LOW;
  }
  digitalWrite(BLINK_PIN, blinkLevel);    
  
  if (counter >= MULTIPLIER) {
    counter = 0;
    if (relayLevel == LOW)  {
      relayLevel = HIGH;
    } else {
      relayLevel = LOW;
    }
    digitalWrite(RELAY_PIN, relayLevel);    
  }
  
  delay(sleepMS);       
}
==


For next versions I'll use an ATTINY85 in stead of the arduino, I can add some knobs to control the cycle times and maybe rather build it into a multi adaptor.

Wednesday, 30 May 2012

My first 3D print


I finally got round to do a 3D print of nice puzzle I found.

There has been a 3D at house4hack for ages now, earlier this year we got another one and this week they even made a baby.
Anyways, I challenged myself to do a print ASAP to get into it, which bared fruit now. 
My wife said she will believe it when she sees it, so I'm posting these photos and the video here as proof :)
 It's quite a nice puzzle with a handy holder. It would have been nice if the pieces could fit in when not assembled and if it had a lid, so they won't get lost. 

 Finally after the 4th time that I managed built the cube, I could reproduce it (the cube is a bit fragile and fell apart before I could figure out how I did it the first 3 times). 

It weighs in at +- 20grams (I don't have an accurate scale at home), so at R700/Kg, it comes to about R14.