iObserve v1.6.1 just submitted to the Store. I couldn't really find a fix for the rdar problem mentioned earlier. I did modify a little thing in the code that could possibly help. But Apple didn't respond to my inquiry on the subject. I have a user report saying that the problem went away apparently on macOS High Sierra (10.13).
SwiftAA, the most comprehensive collection of accurate astronomical algorithms just reached v2.0! This is the first version of complete Solar System APIs with units safety and a whopping 90%+ of unit tests coverage.
I am very proud of the result. Lots of things remain in the pipe for an even more amazing v3, but here you have: a complete set of easy-to-read and documented APIs to compute everything you need about the solar system.
It's been a while now that I chose to make my app iObserve free for all (both on macOS and iPad) and to support it at the basic level (I know iObserve on iPad hasn't received yet the update it deserves). If you don't know why, you should read this.
But of course, it keeps thriving! And a lot of people use it! And one of the best channel I have to get a sense of how often it's being used is the mails I receive to include new builtin observatories. Check this out only for this summer:
It is really warm feeling to see this.
But if you follow this blog, you also know that I am developing arcsecond,io and that it has a dedicated observatories page, right?
Of course, the obvious thing to do is to plug arcsecond.io into iObserve to make it easier for everyone to contribute! And this is what I planned in the past to do, but in the v2.0 of iObserve... which is stalled, because I develop arcsecond.io. Arg!
Enough cheating. This blog post is to announce I will develop an update of iObserve 1.6 to use the observatories in arcsecond.io. That is, I will not wait for v2 of iObserve. The tricky part is that the ObservatoryManager is something essential of the app, and I can't develop this overnight. But enough said, and back to work!
Collaborative work help great developers to push their own ideas forward. Alexander Vasenin participated to key improvements of SwiftAA, put in place by yours truly. SwiftAA, based itself on AA+ by PJ Naughter, but with much easier and swifty APIs, is the most comprehensive and accurate collection of astronomical algorithms in Swift (and Objective-C along the way).
Alexander just released a wonderful and very detailed iOS app about meteors, called MeteorActive. Find everything about these beautiful phenomena in a snap, thanks to this carefully crafted app. And it's free!
I may not update this blog very often, but things keep moving forward!
First, I've fixed an important bug in SwiftAA, the iOS/macOS framework of astronomical algorithms. There was a confusion on ecliptic coordinates, which was then propagating to other coordinates, and making impossible to have reliable times of Rise, Transit and Set for celestial objects. What a pity if you couldn't compute these times with SwiftAA! It is now fixed. Check the release. Even if it takes time, I keep moving forward to reach the 2.0 milestone.
The other updates are about arcsecond.io. I made progresses in many compartments: Datasets, Night Logs, Observing Runs, Profiles. Objects page, Publications etc etc. The new root page now has a Google-like search field. For the exoplanets side, I'm working on something very cool, but it isn't ready yet (planned for v0.3).
You can check the changes and the improvements brought by every release in the dedicated Changelog page.
As for iObserve, I keep receiving new observatories. Thanks to all. I may consider an update of iObserve to use observatories in arcsecond.io once back from vacations. Better not promise anything though, I know how it goes...
But here is something I am busy with right now: Observing Runs, for which I needed Observing Sites. Looks like a online version of iObserve...
A very first selection of an observing site inside the Observing Runs dashboard.
I know, I am building again a 3-columns-with-topbar layout... But I think this is clearly the most adapted to a pro app like that. More to come soon!
Coming very soon, a brand new observing sites page! Stay tuned.
I just reached 50% of documentation for SwiftAA, the best astronomical framework in the language Swift out there! That's a small milestone, but I'm happy it's been reached. Now, I must do the same with Unit Tests, which is as important as the documentation.
You can access it right here: http://onekiloparsec.github.io/SwiftAA/
After many months, I finally managed to submit a new version of iObserve. I am happy to see I continue to be able to improve it (even if I am not writing Objective-C code anymore regularly). I also hope it will be good enough for the coming weeks, as I am preparing more stuff for the future!
... on the road to iObserve 2!
As you certainly know if you read this blog a bit, here and especially here, I am preparing, slowly, a version 2 of my famous app for astronomers: iObserve. One key thing about it are observatories, over and over again. The problem of managing different places, being able to record your own places, possibly sharing them etc, exists since the inception of the app, when it was only in a widget form...
In the course of the years, I've developed a lot of things about it and never found it entirely satisfactory. Then came arcsecond.io.
Arcsecond.io was first intended to be the backend for a much lighter iObserve client. But it appears it can solve a lot of things! And the first thing it can solves is to be the one-place-to-go for everything about observatories in the world.
Hence, one of the primary mission of arcsecond.io is to record, store, share, make available all the information about such places.
Of course, as soon as it gets ready to edit and display useful things about all observatories, and you can add your own etc, you'll get your hands on it!
I've decided to close the sources of arcsecond.io for now. It's been quite a while since I started to think about it.
Two main reasons. First, the opening of the sources had strictly none of the expected effects, that is, to gather people around the project, even just a few. None. Second, arcsecond.io is a fairly large project, some said too much. And before I find a satisfactory plan of splitting / simplification / whatever, I prefer to make my business on my own.
However, if anyone is interested to really participate, I'll be happy to include him as a member of the GitHub project.
... but quite a milestone in my master plan (see previous post). After about a year of (discrete periods of intense) work, I've decided that SwiftAA, the best collection of astronomical algorithms on Swift, hit the 2.0-alpha stage.
SwiftAA is intended to be the underlying code framework of all scientific computations of the next version of iObserve. With it, I'll be able to provide tons of details about many objects, and especially about Solar System objects, which are clearly missing in the current app.
It's an alpha stage, of course. It means a lot of details need to be polished: iOS version polishing, more unit tests, a more consistent handling of numeric types etc. But all of the C++ code is wrapped in Objective-C(++) code, and all that old-style code mimicking the original AA+ one is now "Swifted". That is, it has been elevated to a lot higher level of expressive formulation.
Complexity remains, since the solar system isn't quite easy to simplify. Hence, when one has the goal of minimizing the amount of lines of code, to extract the most of it, things aren't easy to read at first.
But there is a Swift Playground for those interested to learn. I wish I had more time for making this Playground more "ready to use". But as for now, you need to dive a bit into the thing and the project to actually understand it. But time will come, I'll prepare a better one.
In my website stats, I noticed that some people keep talking about iObserve, which is great. One post however mentioned the wish to have a Linux version of it. Those interested in what happens here @ onekilopars.ec probably understood that it is also part of the master plan. But current web-based technologies to make cross-platforms apps are difficult to put in place. I've tried about 6-7 times. But I don't give up!
I've received about 30 new observatories to be included in the next version of iObserve. That's really great, as it is the sign of a strong usage of the app (more than 15k downloads so far). They are all in my list of to-dos, but I must say that it is sometimes hard to be motivated to finish this new new version, and I am late. But it will come!
Software is amazing, because it let you create your own world. This is the world as I see it in the future. I learned so much by creating iObserve (over the course of the past years...). And as in science, the main lesson was that I didn't know much actually...
Hence, since I love challenges, I decided to dive into new questions:
- new language for the app iObserve
- new architecture for the app
- own backend service with specific language
- start cloud service with storage and online DB
- extract as many macOS components from app into open-source libraries
- finally implement dreamed features (night logs, observation simulator...)
- I'm sure something is missing...
If someone want to share the bumps ahead on the road, he|she is most welcome.
Clear skies to everyone!
P.S. By the way, arcsecond.io just migrated to Python3...
Dear iObserve users, not many news over here for some time. iObserve 1.5 is still downloaded quite many times every week (reaching 12.5k total downloads!). I can see that some of you send me new observatories. I'll find some time to create an update of that bunch of new observatories.
Apart from that, I've been able to re-compile and re-run iObserve Touch on an iPad with iOS 9.3. And that's nice, because it wasn't so easy with the amount of code involved here and there. So maybe I could find some time for a little update as well. It reached almost 6k downloads by itself, wow!
On the other side, I'm a bit busy with new stuff. Most of which is the decomposition of iObserve code into little frameworks (for instance: https://github.com/onekiloparsec/KPCTabsControl). But also scientific ones!
In particular, I am preparing a Swift playground with the best astronomical algorithms in town. The code will be good for developers, for iObserve2, but the Playground could be interesting to teachers! Check it out here the on-going work: https://github.com/onekiloparsec/SwiftAA
Interestingly, this all-code activity is a kind of rest for me. At my startup job, I spend the day interacting with tons of new people (and it's really great!). So it's nice to interact with computers a bit. :-)
I've read somewhere that good software takes 10 years. Ah yes, here, from someone who knows a fair bit about it. As you have read here, iObserve is 6 years old. And despite recent 1.5 update series (to finally release Sky Maps), the code definitely reaches a level where any true new feature is immediately flooded by the amount of work of refactoring, additional bug fixing, not talking about the weaknesses revealed by the new feature...
But iObserve is a master piece I don't want to just let go (some people are good at letting it go, at some stage in their life – I trust my fear of getting bored to continue creating lots of stuff...). So I prepare the version 2 of that app.
To do so, I am working on a collection of great stuff, some of them being mine, some of them inspired by others, or by participating to other projects. Here a list:
• Siesta is a great framework to consume REST APIs. It will make the access, download, cache, storage and update of data a looooooot easier than the current code in iObserve 1.
• Of course, iObserve data is of absolute central importance in the app. Nowadays, it is downloaded from the various services with custom connectors for each of them (SIMBAD, ADS, JPL Horizon...). That's why arcsecond.io has been built!
• The arcsecond.io is being foreseen to be a whole cloud service by itself. With user accounts and all that stuff. And it will be part of iObserve 2 chain of software. There are periods of time where I put efforts on iObserve itself. And there periods where I put efforts on arcsecond.io... Depends on the direction of the wind.
• The scientific part of iObserve is based on Jean Meeus' textbook 'Astronomical Algorithms'. I've implemented part of it (available here, but not updated since exactly a year). But a lot more complete implementation has been developed in C++ by P.J. Naughter, called AA+, who let me write a wrapper for it. Thanks to recent efforts, I managed to bring the AA+ library to the Swift playgrounds! Nice to have little Solar Systems under your fingers. I will post example and movies as soon as it is stable. SwiftAA is open-source.
• An additional (and very important) part of scientific calculations is related to dates. Current implementation in iObserve is far from satisfactory. Hence, I'm helping improving the open-source project SwiftDate.
That's all it takes for the foundations...
Thanks to the amazing startup I work for, I am currently en route for the Unite event of Unity3d in Amsterdam.
Learning Unity3d is the occasion to dive in the game industry. I really hope I can hack some a few things astro in the mid-term range.