Archive for the 'announcement' Category
Release (Sort-of): RubySunrise Gem
As a follow-up to the Java sunrise/sunset calculator I released early last year, I’m releasing a ruby gem that does essentially the same thing. Just in A LOT less code, but with the same attention to test goodness.
To install and use the RubySunrise gem just:
$ gem install RubySunrise
or download from RubyGems.
The current version as of today is 0.2, which requires the tzinfo gem (link) to perform the timezone offset lookups.
If you want/need the lastest, just grab it from the github repo:
$ git clone git://github.com/mikereedell/sunrisesunset-ruby
$ gem build RubySunrise
At this time the RubySunrise gem covers astronomical, nautical, civil, and official sunrise/sunset calculations for every location that experiences a sunrise and sunset every day (Sorry Alaska!). I’m currently working on the strangeness that is causing my Alaskan test suite to fail with known-good data.
Example time:
require 'solareventcalculator'
date = Date.parse('2008-11-01')
calc = SolarEventCalculator.new(date, BigDecimal.new("39.9537"), BigDecimal.new("-75.7850"))
utcOfficialSunrise = calc.compute_utc_official_sunrise
localOfficialSunrise = calc.compute_official_sunrise('America/New_York')
puts "utcOfficialSunrise #{utcOfficialSunrise}"
puts "localOfficialSunrise #{localOfficialSunrise}"
Which yields:
utcOfficialSunrise 2008-11-01T11:33:00+00:00 localOfficialSunrise 2008-11-01T07:33:00-04:00
The source is available under the Apache License, Version 2.0:
http://github.com/mikereedell/sunrisesunset-ruby
Release: Sunrise/Sunset Java Library
New from LuckyCat Labs is a Java library that computes the sunrise / sunset using GPS coordinates and today’s date. To use, simply download the tar or zip file from the GitHub page, or use git to pull the source:
$ git clone git://github.com/mikereedell/sunrisesunsetlib-java
Once you have the source, use the command:
$ ant all
To compile the source, build the bin, src, and test jars, execute the unit tests and generate the JavaDoc for the library.
This code snippet illustrates the main usage pattern:
// Location of sunrise/set, as latitude/longitude.
Location location = new Location("39.9937", "-75.7850");
// Create calculator object with the location and time zone identifier.
SunriseSunsetCalculator calculator = new SunriseSunsetCalculator(location, "America/New_York");
Calendar date = Calendar.getInstance();
String dawn = calculator.getCivilSunriseForDate(date);
String dusk = calculator.getCivilSunsetForDate(date);
The list of supported time zone identifiers is given by:
//Returns String[] of supported tz identifiers. TimeZone.getAvailableIDs();
Any feedback? Comments? Features? Bugs? Comment below or add to the project wiki.
Released under the Apache License 2.0.
View Comments