Catégorie : Swift

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…

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.

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.

And the only way to correctly develop, test, bullet-proof the observing sites at arcsecond.io is to build an app, using the arcsecond.swift and SwiftAA sdks. So here it is, for the visible part:

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!

… 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!

Two months already since I made iObserve free, and a month since I started to work in my new startup. And a month without any code! How bizarre! Sorry guys, but as you may have guessed, I made no progress at all on the iObserve front. In fact, during the last month I had only my 7-years old MacBook Pro. Tough to run Xcode and code confortably with it. Now that I received the latest high-end Retina, things have much improved!

Here is the situation at onekiloparsec’s:

iObserve 1.5 is still ongoing. Sky maps coming, along with various bugfixes coming, especially that factor 15 for Right Ascensions when entering coordinates manually. I was planning to put in place an update mechanism outside the MacAppStore, but given the time it takes, I’ll skip it for now. So expect a regular update in the MAS. I can’t make plans for when, but this is definitely on top of the list.

I’ve received a request to support PixInsight XISF in QLFits. That’s very interesting, as I didn’t know about before. I’ll have to check that. Love new stuff.

KPCTabsControl has been updated to play better with AutoLayout projects, because of a developer request. Great spirit among developers around the world; open source can be really cool sometimes.

SwiftAA is stucked in between version 1.0 and 2.0. I really wish I could finish this soon. This is key for the future, but I am stuck on how I should translate pure C++ style / syntax in the most useful / modern Swift style and syntax. Life can be hard sometimes. 😉

Because of SwiftAA is stuck, so is iObserve 2 too… But anyway, this new app depends on the development of arcsecond.io. And I am wondering I could write things in Swift. Probably not on the server side (even if it is possible right now).

But you know what? I’ve been thinking a lot about arcsecond.io lately. I regularly receive emails from the backend about this or this not working well (for instance, duplicate Observatories, yes, I look at you, Crete). I am all aware of it! And I need to do something about it, definitely. Enough said for now. More on that later.

Most welcome to send comments and feedbacks if you can help or discuss. Stay tuned, as always.

Too much heat these days here… (it’s midnight, and I am coding in my terrasse…). And I need to make a quick summary of what’s going on @ onekilopars.ec…

First, and foremost, iObserve. An update version in the 1.4 serie is in preparation. It will include some usual small fixes, one clear usability fix for the Fluxes converter, and more importantly an important improvement to the Coordinates converter. No more loading the full DB. An import/export will replace it. Since it is not the most fun to write, it takes a bit of time. Thanks however to some recent input from a user, I’ll try to also include exoplanets transit times in Airmass and Visibility Plots.

Some of the fixes of iObserve will probably need to be ported to iObserve Touch on iPad. The problem here is that the whole app needs to be updated (again). Apple is always moving forward, and I made a choice for that app long ago that prevent me to go a lot further today (buhhh). Yes, MultiTasking won’t be possible with the current configuration (with that super-cool-awesome-but-very-custom split view controller allowing you to have a master table – with tabs! – in the left, the detail on the right, a top times bar, and the whole master thing wrapped up in a popover when being in portrait). The planning for this is: Undefined, unfortunately, even if it is fun to adopt more recent technologies.

Next, the iObserve 2 story… The Desktop client is well underway. I have multiple-windows, and a lot more power features for big screens. But I wanted 2 major stuff for iObserve 2: a dedicated backend, and some advanced algorithms for planets (and not only Moon as I have today).

The backend is in preparation… but guess what, along the way, I found it very interesting and it opens tons of new possibilities. It is in a very pre-alpha state, and it will be called … arcsecond.io. It is very unstable, as I am struggling a bit with the Django-Python-HTML-Bootstrap-Heroku-Postgres stack. But I am actually pushing code now and then into the repo.

As for the algorithms, the obvious reference is Jean Meeus’ Astronomical Algorithms textbook. I have a copy of the book. And I implemented some of it. But there is an existing implementation that is a lot more complete than mine, and a lot more tested. It’s called AA+, by P.J. Naughter. After some discussion he agreed for letting me put hist code into a GitHub open-source repo, for me to write an Objective-C wrapper… which became actually a Swift wrapper! It’s open-source, so have a look!

Of course, putting my hands into Swift, I thought I could do some interesting stuff with it. And one very nice ESO guy suggested me to write an app for monitoring the ESO archive live, every night. That’s a great occasion to start a new app with all the amazing new stuff iOS8 introduced. So here it will be: SkyDataFlows.

Of course, to read correctly the ESO DB, one must parse the VOTable output. And there is no VOTable parser written in Swift… so here it is! SwiftVOTable, open-source, boum.

And beside this, waiting, is my iTiunes-For-FITS file app (which benefits from the progress of the development of iObserve 2), and some other web projects with a friend of mine. Dev is a lifestyle, a mental life with ups and down! #yeah