- Have someone share their Google calendar with you
- https://calendar.google.com/calendar/iphoneselect
- Select calendar(s) to sync
- Maybe wait a minute if you don't see the new shared calendar
- Select the shared calendar on your iPhone/iPad calendar application
Eric is learning
Blog descriptions, like blog names, are usually pretty terrible. This is no exception.
Thursday, January 30, 2020
Add shared Google calendar to iPhone/iPad
Sunday, April 30, 2017
Javascript project development with Pow and deployment to Heroku
Serve your project with Pow
Chrome may throw a bunch of errors if you try to run a local JavaScript project just by opening the file(s) in your browser. Third-party library libraries may be blocked due to cross-origin protocol scheme filtering which does not like file://.
One way to get around this is to use Pow to serve the project.
After installing Pow, substitute your project's location following this example:
cd ~/.pow
mkdir soundpound
ln -s /Users/username/projects/soundpound soundpound/public
Deploy to Heroku
When your project's ready to share, deploy it to Heroku!
- Create a nodejs project in Heroku
- Add heroku/nodejs buildback in Personal apps -> Settings in the Heroku console
- Add a package.json file to your application
- Push from your git repository to deploy the project to Heroku
Example package.json:
{
"name": "soundpound",
"version": "0.1.0",
"description": "keyboard-driven sound and light show",
"scripts": {
"start": "harp server --port $PORT"
},
"dependencies": {
"harp": "*"
}
}
{
"name": "soundpound",
"version": "0.1.0",
"description": "keyboard-driven sound and light show",
"scripts": {
"start": "harp server --port $PORT"
},
"dependencies": {
"harp": "*"
}
}
See https://soundpound.herokuapp.com/
Labels:
"cross origin",
"cross-origin",
"serve local javascript",
heroku,
pow
Thursday, March 23, 2017
Maven things
Install library
mvn install:install-file -DgroupId=com.humegatech -DartifactId=car2go-connector -Dversion=1.2.0-SNAPSHOT -Durl=file:./target/ -DupdateReleaseInfo=true -Dfile=./target/car2go-connector-1.2.0-SNAPSHOT.jar
Deploy to local repository
Add repo to pom.xml
...
<repository>
<id>local-maven-repo</id>
<url>file:///${project.basedir}/lib</url>
</repository>
</repositories>
Deploy
mvn deploy:deploy-file -DgroupId=com.humegatech -DartifactId=car2go-connector -Dversion=1.2.0-SNAPSHOT -Durl=file:./lib/ -DrepositoryId=local-maven-repo -DupdateReleaseInfo=true -Dfile=./lib/car2go-connector-1.2.0-SNAPSHOT.jar
Release Deployment
http://central.sonatype.org/pages/apache-maven.html#performing-a-release-deployment
mvn install:install-file -DgroupId=com.humegatech -DartifactId=car2go-connector -Dversion=1.2.0-SNAPSHOT -Durl=file:./target/ -DupdateReleaseInfo=true -Dfile=./target/car2go-connector-1.2.0-SNAPSHOT.jar
Deploy to local repository
Add repo to pom.xml
...
<repository>
<id>local-maven-repo</id>
<url>file:///${project.basedir}/lib</url>
</repository>
</repositories>
mvn deploy:deploy-file -DgroupId=com.humegatech -DartifactId=car2go-connector -Dversion=1.2.0-SNAPSHOT -Durl=file:./lib/ -DrepositoryId=local-maven-repo -DupdateReleaseInfo=true -Dfile=./lib/car2go-connector-1.2.0-SNAPSHOT.jar
Release Deployment
http://central.sonatype.org/pages/apache-maven.html#performing-a-release-deployment
Thursday, February 4, 2016
Free(ish) tee shirts from tech companies
If you're reading this you've already missed the January 2016 sweatshirt Salesforce offered for earning five badges on Trailhead (https://developer.salesforce.com/trailhead/en), but there are still plenty of folks willing to turn you into a mobile advertising platform.
You will be asked for personal information, a social media connection and maybe even some of your time.
NewRelic http://newrelic.com/lp/datanerd
Just sign up
MuleSoft http://champions.mulesoft.com/
Complete an hour or two's worth tasks: reading, commenting, LinkedIn connection, Twitter following, etc. After a week you'll get a link to redeem your t-shirt: I had to turn of Ghostery and uBlock Origin to complete the redemption process.
CircleCI http://blog.circleci.com/new-stickers-and-circleci-tee-shirts/
Just sign up
SmartBear http://www2.smartbear.com/Yovia-Social-TShirt-Campaign_Yovia-Social-LP.html
Download LoadComplete
5nerdssoftware: http://5nerdssoftware.com/so-you-want-a-free-shirt/
Facebook like
Mixpanel https://mixpanel.com/tshirt
Sign up, be inactive for a week (not sure if this is necessary, but I didn't get an email about the shirt until being inactive after signup), then instrument your application with Mixpanel. Or just go to your console:
m = Mixpanel::Tracker.new '<your_product_token>'
m.people.set('1', {'email':'first.last@gmail.com'})
m.track('1', 'first event')
Amazon https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/content/alexa-developer-skill-promotionPublish an Alexa skill before March 31, 2016
Rollout https://blog.rollout.io/2015/12/try-rollout-get-a-free-tshirt/
contact information
Wistia http://wistia.com/shirts
contact information
JIRA Service Desk https://www.atlassian.com/software/jira/service-desk
You have to set up an account and do some things in said account
Rollbar https://rollbar.com
Create a free account and then wait a while (2+ months?) before you instrument an application. I got an email saying that if I instrumented an application with Rollbar they'd send me a shirt for free.
DataDog https://www.datadoghq.com/ts/nagios/
I started a free trial and continue to have free monitoring on a non-production PostgreSQL instance.
On hold
These free shirt offers seem to be over/on hold:
WhenIWork http://wheniwork.com/free-shirt
Codeship https://codeship.com/swag
You will be asked for personal information, a social media connection and maybe even some of your time.
NewRelic http://newrelic.com/lp/datanerd
Just sign up
MuleSoft http://champions.mulesoft.com/
Complete an hour or two's worth tasks: reading, commenting, LinkedIn connection, Twitter following, etc. After a week you'll get a link to redeem your t-shirt: I had to turn of Ghostery and uBlock Origin to complete the redemption process.
CircleCI http://blog.circleci.com/new-stickers-and-circleci-tee-shirts/
Just sign up
SmartBear http://www2.smartbear.com/Yovia-Social-TShirt-Campaign_Yovia-Social-LP.html
Download LoadComplete
5nerdssoftware: http://5nerdssoftware.com/so-you-want-a-free-shirt/
Facebook like
Mixpanel https://mixpanel.com/tshirt
Sign up, be inactive for a week (not sure if this is necessary, but I didn't get an email about the shirt until being inactive after signup), then instrument your application with Mixpanel. Or just go to your console:
m = Mixpanel::Tracker.new '<your_product_token>'
m.people.set('1', {'email':'first.last@gmail.com'})
m.track('1', 'first event')
Amazon https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/content/alexa-developer-skill-promotionPublish an Alexa skill before March 31, 2016
Rollout https://blog.rollout.io/2015/12/try-rollout-get-a-free-tshirt/
contact information
Wistia http://wistia.com/shirts
contact information
JIRA Service Desk https://www.atlassian.com/software/jira/service-desk
You have to set up an account and do some things in said account
Rollbar https://rollbar.com
Create a free account and then wait a while (2+ months?) before you instrument an application. I got an email saying that if I instrumented an application with Rollbar they'd send me a shirt for free.
DataDog https://www.datadoghq.com/ts/nagios/
I started a free trial and continue to have free monitoring on a non-production PostgreSQL instance.
On hold
These free shirt offers seem to be over/on hold:
WhenIWork http://wheniwork.com/free-shirt
Codeship https://codeship.com/swag
Friday, May 10, 2013
jMock custom actions, doAll expectation and onConsecutiveCalls
I had an issue with a class that I've not encountered before with projects on which I use jMock: I have a mocked class whose method modifies an object it takes as a parameter. I suspect this is due to poor coupling in the application, but I'll refactor at a later date -- for now I welcome the challenge as an opportunity to explore three aspects of jMock with which I'm unfamiliar: custom actions, doAll and onConsecutiveCalls.
public Object processBusinessObject businessObject) {
ReturnObject returnObject = new ReturnObject(businessObject);
// change state of input parameter
businessObject.incrementCounter();
return returnObject;
}
}
create custom jmock.org.api.Action in my test class
create static call to construct custom Action in my test class
use doAll to execute custom Action and mocked class's method call
use onConsecutiveCall to
Problem
public class WillBeMocked {public Object processBusinessObject businessObject) {
ReturnObject returnObject = new ReturnObject(businessObject);
// change state of input parameter
businessObject.incrementCounter();
return returnObject;
}
}
Solution
create custom jmock.org.api.Action in my test class
private static class BusinessObjectIncrementCounterAction<T> implements org.jmock.api.Action
{
private final BusinessObject businessObjectInstance;
public BusinessObjectIncrementCounterAction(final BusinessObject businessObjectInstance)
{
this. businessObjectInstance = businessObjectInstance;
}
@Override
public void describeTo(final Description description)
{
description.appendText("calls incrementCounter() on the businessObjectInstance");
}
@Override
public Object invoke(final Invocation invocation) throws Throwable
{
businessObjectInstance.incrementCounter();
return null;
}
}
create static call to construct custom Action in my test class
private static <T> org.jmock.api.Action incrementCounter(final BusinessObject businessObjectInstance)
{
return new BusinessObjectIncrementCounterAction <T>(businessObjectInstance);
}
use doAll to execute custom Action and mocked class's method call
context.checking(new Expectations() {
{
oneOf(willBeMockedInstance).process(businessObjectInstance);
will(doAll(incrementCounter(businessObjectInstance),
returnValue(new ReturnObject("A"))));
}
});
use onConsecutiveCall to
context.checking(new Expectations() {
{
exactly(2).of(willBeMockedInstance).process(businessObjectInstance);
will(onConsecutiveCalls(doAll(incrementCounter(businessObjectInstance),
returnValue(new ReturnObject("A")))),
doAll(incrementCounter(businessObjectInstance),
returnValue(new ReturnObject("B")))));
}
});
Wednesday, May 8, 2013
Return code is: 401, ReasonPhrase:Unauthorized. -> [Help 1]: Nexus error via Maven via Jenkins when using a slave node: Solved
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project project: Failed to deploy artifacts: Could not transfer artifact com.company:project:jar:build_id from/to dirname (http://server:port/nexus/content/repositories/snapshots): Failed to transfer file: http://server:port/nexus/content/repositories/snapshots/com/company/product/build_id/product-build_id.jar. Return code is: 401, ReasonPhrase:Unauthorized. -> [Help 1]
(Output modified to protect the innocent.)
I have Maven builds running on a Jenkins master with slave nodes. The deploy goal attempts to push artifacts from the build out to our Nexus instance.
To address this issue I had to add settings.xml to the Jenkins slave owner's .m2 directory as this is used during the upload to Nexus, not the settings.xml in the .m2 directory on the Jenkins master box.
Monday, April 15, 2013
How to move a repo from GitHub to Bitbucket
Just collating two existing resources. As with the first poster I like to store tutorial code, etc. in a private repo so that it doesn't clutter up my GitHub presence when I put something out there.
Import GitHub repo into Bitbucket
http://somatose.com/2011/10/from-github-to-bitbucket-in-60-seconds.html
Delete GitHub repo
https://help.github.com/articles/deleting-a-repository
Subscribe to:
Posts (Atom)