tag:blogger.com,1999:blog-30394640824508759402024-03-13T19:30:43.597-07:00Dan's Adventures in Programming and LifeDaniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.comBlogger43125tag:blogger.com,1999:blog-3039464082450875940.post-55206292038024572442013-02-17T12:08:00.001-08:002013-02-21T20:56:17.026-08:00ArtClient v3.2.3 alphaWith the release of Artemis SBS v1.7, a lot of things changed both for users, and under the hood. For a while, I was pretty much convinced that things had changed too much for me to figure out. But, I persevered, wrote a few utility classes, and finally figured out the big changes---and even discovered some new things, too.<br />
<br />
With some help from players on the Artemis forums, I've resolved a bunch of issues and now have a pretty good build. This is still alpha, because I think there's at least one or two unresolved crashes, but it also includes a crash reporting utility (which the security-paranoid can opt out of, though that means I may not be able to fix any crashes you experience) and a bunch of new features.<br />
<br />
You can <a href="https://www.dropbox.com/s/tys535qq6m56ftf/ArtClient-3.2.3a.apk">download v3.2.3 alpha here</a>. It is no longer compatible with Artemis SBS 1.661, but IS compatible with 1.7 and 1.701 (the version on iOS).<br />
<br />
Changes:<br />
<ul>
<li>NEW: Captain's map controls are properly separated from Science controls</li>
<li>NEW: "Relative" helm display! Enable under Settings</li>
<li>NEW: Engineering's Warp/Jump systems labeled appropriately by chosen drive type</li>
<li>NEW: Improved science scanning handling, follows the official client much more precisely!</li>
<li>NEW: Added (opt-out-able) crash reporting, so hopefully I can see exactly what's causing any remaining crashes</li>
<li>NEW: Allow connecting to version 1.701 servers (untested!)</li>
<li>FIX: Radar touch controls now continue to work properly after leaving and returning to the app</li>
<li>FIX: USFP references changed to TSN to match 1.7 client</li>
<li>FIX: Various bugs</li>
<li>Improved helm's tap-to-steer logic. </li>
</ul>
<br />
<br />Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com2tag:blogger.com,1999:blog-3039464082450875940.post-68190834427790361272012-12-31T09:03:00.002-08:002013-02-23T08:15:51.976-08:00ArtClient v2.7 betaJust in time for any New Year's Eve Artemis parties, I'm releasing version 2.7 beta of my unofficial Android client for Artemis SBS.<br />
<br />
You can <strike>download it here</strike>(See update below) and check out the changes below.<br />
<br />
Changes:<br />
<br />
<br />
<ul>
<li>NEW: Helm (finally) will use the correct drive (warp/jump) when joining in-progress games!</li>
<li>NEW: Station shields shown when selected by science/captain</li>
<li>FIX: Red alert/Shields status are shown/updated correctly when joining an in-progress game</li>
<li>FIX: Captain's map selector behaves and looks more like the official one</li>
<li>FIX: Bearing indicator should never go negative anymore</li>
<li>Turning smoothing should be better now, as we use the server-indicated turn rate if possible</li>
<li>Engineering sliders follow updates from the server during a game, now. May not be important, but the official client does this</li>
<li>Minor tweaks to improve Radar rendering, ship selection, etc.</li>
</ul>
<b>UPDATE:</b> In response to the request for access to this again, I'm adding the improved, 2.7.2 beta that was posted on the Artemis forums. <a href="https://www.dropbox.com/s/ldtjltc11bbby74/ArtClient-2.7.2b.apk">You can download it here</a> and see the added tweaks below:<br />
<ul>
<li>2.7.1: 30000% sliders bug fixed </li>
<li>2.7.2: Add version check so it doesn't try to play with incompatible servers (causing, you know, crashes)</li>
</ul>
Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com3tag:blogger.com,1999:blog-3039464082450875940.post-80876206685509990402012-12-27T15:58:00.001-08:002012-12-31T09:06:02.525-08:00ArtClient v2.6 betaJust released version 2.6 beta of my unofficial Android client for Artemis SBS. Since I forgot to post about 2.5 beta, I'll include its changes in the list here, too.<br />
<br />
You can <a href="https://www.dropbox.com/s/6gcgs2amlhpb7xs/ArtClient-2.6b.apk">download version 2.6 beta here</a>.<br />
<br />
Changes:<br />
<br />
<br />
<ul>
<li>NEW: Helm and Weapons can see distance and bearing to nearby ships</li>
<li>NEW: Heading indicator for Helm, about the steering slider</li>
<li>NEW: Preference for tilt steering sensitivity, and to choose an alternative axis (for people whose devices report the wrong one, I guess)</li>
<li>NEW: Neutral and enemy ships should get some smoothing to their turning.</li>
<li>NEW: Receive and play back incoming audio messages (incoming_message scripting command)</li>
<li>FIX: More ships on radar (I was treating the INVIS_TO_* flags as always active, but science was showing some INVIS_TO_SCIENCE ships if the "state" bitmask was empty, so I guess they all need to be "active" or something)</li>
<li>FIX: Further reduce (remove?) "pop" when loading and unloading tubes</li>
<li>FIX: Changing beam frequencies works properly (IE: Doesn't unload torpedo tubes... oops!)</li>
<li>FIX: Handle missing .snt files more gracefully (for Mods support)</li>
<li>FIX: Remove "tilt" menu item from weapons</li>
<li>Further improved neutral ship parsing</li>
</ul>
<br />
Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-72460835056777361682012-12-19T07:34:00.006-08:002012-12-19T07:34:59.807-08:00ArtClient v2.4 betaRecently released version 2.4 beta of my unofficial Android client for <a href="http://www.artemis.eochu.com/">Artemis SBS</a>. It adds some fun new features, and fixes a bunch of little issues!<br />
<br />
You can <a href="https://www.dropbox.com/s/7wkl0v17oeo82o6/ArtClient-2.4b.apk">download it here</a>, or check out the changelog:<br />
<br />
<ul>
<li>NEW: Tilt-to-steer feature for Helm, if your device has an accelerometer and magnetic field sensor</li>
<li>NEW: Tap-to-steer feature, just like the official client!</li>
<li>NEW: Captain's map! Basically Science without scanning, but had a lot of requests</li>
<li>FIXED: Inability to select the station you just were after changing ships</li>
<li>FIXED: Font colors in jump dialog were wrong</li>
<li>Padding/sizes in Jump Dialog tweaked to hopefully fit smaller screens better</li>
<li>Improved parsing of neutral and enemy ship packets</li>
</ul>
Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-29934322394831300672012-12-12T08:24:00.004-08:002012-12-12T08:24:55.796-08:00Artemis SBS on Android (Unofficial)Don't know if you've heard of <a href="http://www.artemis.eochu.com/">Artemis Spaceship Bridge Simulator</a>, but it's pretty much the best game ever. If you like spaceships or cooperative games at all, you will be as hooked as I am!<br />
<br />
A while ago, I decided that it would be pretty excellent to play this game on a tablet, and having a Nexus 7 and being an Android developer, I set out to do something about it. There's now an official iOS version available, but at the time I started, that hadn't even been announced.<br />
<br />
And, I'm an Android guy.<br />
<br />
So, I sat down with Wireshark and observed the packets that the official PC client sent and figured out the structure, then began the laborious process of building a packet parser in Java and continued figuring out the packets.<br />
<br />
A couple months later, I now have an almost fully-functioning Android client, and wanted to share it here. To be clear, this is a completely unofficial and unsupported version, whose functionality is entirely based on me guessing at the packet structures. They seem to be mostly close enough, but I haven't had any input from the creator of Artemis about the correct structure, so weird things may happen!<br />
<br />
You can track the progress of the app from <a href="http://www.artemis.eochu.com/?page_id=28#/20121018/unofficial-android-client-for-artemis-1988927">its thread on the Artemis forums</a>, or just check out the latest version here: <a href="https://www.dropbox.com/s/9gnqyeaz1slstyt/ArtClient-2.3b.apk">ArtClient Version 2.3 beta</a><br />
<br />
Follow the break for some screenshots.<br />
<br />
<br />
<a name='more'></a><br /><br />
<br />
<iframe frameborder="0" height="540" src="http://min.us/mbj70RvR82dPM5/1e" width="100%"></iframe>Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-32833640158780628512012-06-13T20:10:00.001-07:002012-06-15T00:04:15.380-07:00WeGoIgo 2.2 -- with Lite version!Just a quick post to say that I've released version 2.2 of my Go app just now. Along with a handful of features and changes, this version fixes a slew of bugs and stability issues. Thanks to everyone for reporting the bugs! I'm very happy with this new release—so happy that I've finally gotten around to releasing the Lite version. As before, the Lite version has all the same great features of the paid version, but shows somes ads in a (I hope) non-intrusive manner, and is a lower priority for releases (as is apparent by the several weeks between 2.0 going live on the normal version and this release).<br />
<br />
Follow the break for the official changelog.<br />
<br />
UPDATE: There were two issues with this update that have since been resolved. The first was with the Lite version. Apparently I accidentally imported the "internal" version of the ObjectAnimator class from ActionBarSherlock instead of the nineoldandroids version, which caused an immediate FC in any game mode for devices with an older version of Android. Sorry!<br />
<br />
The other was an issue where files would appear to hang while loading. It was missed by me because I forgot that I had the "don't keep activities" developer setting enabled, which hid the problem. Sorry again!<br />
<br />
<a name='more'></a><br />
<br />
v2.2:<br />
- "Quick Players" let you enter a player name without it saving for future use<br />
- Variations are saved by default; the preference persists across games<br />
- Tablets will keep whatever orientation they started with<br />
- "Save as" default filenames now include the players<br />
- "Share" filename is now the same as the default for "save as"<br />
- FIXED: wrong color stone played in review of handicap games<br />
- Many bug fixes and stability improvementsDaniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com2tag:blogger.com,1999:blog-3039464082450875940.post-77464818745538441912012-05-09T11:31:00.001-07:002012-05-09T11:33:52.082-07:00WeGoIgo 2.0 Released!<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-Zpyq086MiPI/T6q3I9PUnoI/AAAAAAAAAN4/B4ZBlAq6-3A/s1600/home.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://3.bp.blogspot.com/-Zpyq086MiPI/T6q3I9PUnoI/AAAAAAAAAN4/B4ZBlAq6-3A/s320/home.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The new home screen</td></tr>
</tbody></table>
It is with great pleasure that I finally announce the release of WeGoIgo 2.0! There are still a few things that I plan to add, but I decided that if I kept stalling to add new features, it would never get out the door. I've spent the last couple of weeks testing it, tweaking it, and making last minute changes in an effort to make this release the best Go app on the market.<br />
<br />
To anyone who has upgraded to the new version, please feel free to send me feedback-- especially if something doesn't work, or breaks! I did my best to test everything, but the app has many parts-- a lot of which are new or drastically updated in this release-- so it is very possible that I've missed something.<br />
<br />
If version 2.0 is news to you, check out <a href="http://daapl.blogspot.com/2012/04/coming-soon-wegoigo-20.html">my announcement blog post</a> for more details on what has changed. Please be aware that I have increased the price to $2.49. This is still cheaper than almost every other Go app on the market, and I feel the many, many hours I've put into the app deserve the extra change. If you don't agree, then feel free to wait until I update the lite version with the new features :)<br />
<br />
That's it for now. I hope you enjoy the new version as much as I do!Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-13484687852259072512012-04-20T12:25:00.000-07:002012-04-20T12:25:02.806-07:00Coming soon: WeGoIgo 2.0Today I've uploaded GnuGo for WeGoIgo version 1.2 onto the market, in anticipation of the release of WeGoIgo 2.0.<br />
<br />
Version 2.0 of my Go application for Android represents a huge step forward for the app---and, I think, for Go on Android in general. For this release, I've gutted the original app, taking everything I've learned since I first wrote WeGoIgo and improving it in nearly every way. While reading SGF files may be a bit slower, it is actually way more efficient---using a custom-built database to store large files for quick retrieval with minimal overhead---and way more flexible, and using the official SGF checker code as a base for more "correct" and compatible SGF loading.<br />
<br />
In addition to this, I have finally added annotation features---a first, I think, on Android. You will now be able to edit comments, add labels and symbols, and place stones. Furthermore, once you've added comments and annotations to a game, perhaps you want to email it to someone---no sweat! With WeGoIgo 2.0, sharing games your playing or reviewing is just a click away!<br />
<br />
Version 2.0 will be coming out very soon! I don't have anything else on my To-do list at the moment and am in the process of testing, trying to iron out any last-minute bugs.<br />
<br />
Follow the break for screenshots and a more comprehensive list of updates, changes, and new features. There are a lot!<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a name='more'></a><span style="font-size: large;">Interface</span><br />
For starters, I've reorganized the game screen. The toolbar is now directly along the bottom, with comments above the board. Now, the magnifying glass to float above the board, letting it be "above" your finger always---no more weird jumps, or getting lost off screen! The screenshot below should also show you the more cleaned up, refined look of WeGoIgo. I still don't claim to be an artist, but I'm happy with the new look, and hope you will be, too!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-2o_uXmeKtlc/T5GrDLCBtEI/AAAAAAAAAM0/qjA2eRHeKHs/s1600/game.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://1.bp.blogspot.com/-2o_uXmeKtlc/T5GrDLCBtEI/AAAAAAAAAM0/qjA2eRHeKHs/s320/game.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The new game screen layout</td></tr>
</tbody></table>
You'll also notice that the app has been updated to support the ActionBar, and looks and feels like a more modern Android app.<br />
<br />
Another interface feature is the ability to browse the filesystem in the "file picker" dialog. Currently, I've removed the ability to set your own default directories for collections (I may change my mind before the release) but with the new picker, you can load files from anywhere on the phone you wish.<br />
<br />
<span style="font-size: large;">AI Players</span><br />
Another cool feature is the ability to continue games against an AI. In the current version of WeGoIgo, there is a "quick resume" feature which can restore the AI you're playing against. But, if you save that game and want to continue it against the AI later, it cannot be done. Now, ANY game you start from WeGoIgo against an AI, such as GnuGo, can be continued at any time with that same AI.<br />
<br />
Speaking of AI, using version 1.2 of GnuGo for WeGoIgo, you can now get accurate score and territory estimations during any game. My old territory estimation (offered by "score") was little more than a toy, and only useful as a vague visualization tool---which was rarely of any actual use. That functionality has been removed, but if you have GnuGo for WeGoIgo 1.2+ installed, WeGoIgo can ask GnuGo to do the territory estimation---that is what the "score" button in the above screenshot will do.<br />
<br />
Furthermore, thanks to the restructuring of the app's code, AI support is significantly improved. It is now faster, more stable, and easier to maintain from a programming perspective. I admit that the old version's AI support was painfully obtuse and, quite frankly, I'm amazed it worked at all. The new version, however, is much more simple, yet much more robust---which means you can play the AI without wondering if it's going to crash and give up on you.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-m-gSJlL3OTE/T5G3Nd2r26I/AAAAAAAAANE/LN7SNbaDbfE/s1600/study.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://4.bp.blogspot.com/-m-gSJlL3OTE/T5G3Nd2r26I/AAAAAAAAANE/LN7SNbaDbfE/s320/study.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">New Study Mode<br />The quick navigation and auto-play return, <br />but now slide over the board to save space.</td></tr>
</tbody></table>
<br />
<span style="font-size: large;">Stability and Snap</span><br />
Version 2.0 dramatically improves the stability of the app. Thanks to a custom, hand-built database system specifically for the purpose, WeGoIgo can very efficiently load SGFs of any size---including Kogo's Joseki Dictionary. While most users were able to happily load Kogo on the old version of WeGoIgo, 2.0 should bring this ability to <i>all</i> users. Memory use when loading Kogo has been cut from 16+ megabytes to around 3 or 4---this should mark the end of painful crashes halfway through loading!<br />
<br />
The old version of WeGoIgo had a feature to cache the contents of Kogo to prevent the need for a lengthy load every time you wanted to use it, but did not provide that for any other type of file. Version 2.0 now caches all collections---those for studying (previously called "archives"), Tsumego, <i>and</i> Joseki. I mentioned that read times are slightly slower, but after that initial load, it's almost instant---now for <i>every</i> collection!<br />
<br />
Some users noticed that, if you left WeGoIgo with the "home" button in the middle of a game---or, well, anything that was displaying a Go board---it would crash. That is no more! The app has been completely restructured to ensure stability and flexibility---which makes it easier for me to add even more cool features, and more pleasant for you to use! Furthermore, those things with a Go board will persist properly even if Android shuts down WeGoIgo to save memory for something else. This means that if you leave WeGoIgo to do something else for a while, when you come back, your game, or review, or Tsumego problem, will be right there waiting.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-IxZFwaY0K64/T5GyVJgmLYI/AAAAAAAAAM8/bRKro5DAp1g/s1600/fetcher.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://3.bp.blogspot.com/-IxZFwaY0K64/T5GyVJgmLYI/AAAAAAAAAM8/bRKro5DAp1g/s320/fetcher.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The SGF Fetcher tool, with ICS-style selection mode</td></tr>
</tbody></table>
<br />
<br />
<span style="font-size: large;">Convenience and Collections</span><br />
Many complaints and confusion about the app are with regards to adding collections. Many are disappointed that it doesn't come with any, and others have difficulty adding the ones I suggest. While I still do not include any by default---I don't own any, and don't want to get in trouble with copyright!---Version 2.0 now comes with an "SGF Fetcher" tool to easily download some free collections from the internet. This includes Kogo's Joseki Dictionary, several (somewhat old) collections of reviewed games, collections of professional games, as well as several Tsumego collections.<br />
<br />
Speaking of collections, one of the more common requests has been a way to load folders as collections. This is now possible! Furthermore, Version 2.0 supports collections stored in .zip files, and collections compressed as .sgf.gz.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com5tag:blogger.com,1999:blog-3039464082450875940.post-87133257338459935122012-03-24T18:19:00.002-07:002012-03-24T18:19:44.702-07:00DropSpot 1.2I never got around to posting about the initial release of DropSpot, so I guess I'll just do that now.<br />
<br />
If you don't know, DropSpot is an Android app I released recently to easily access and manipulate files on your Android device wirelessly, over wifi, using a modern web browser such as Google Chrome. The key feature of the app, and the reason I created it, is that you can drag-and-drop files from your native file explorer right onto the browser, and have it copy the files to your phone---you can even copy multiple files at once!<br />
<br />
I'm posting today because I've released version 1.2 of the app onto the Market (Google Play). This is a relatively small update, but with some (I hope) welcome improvements. First, you can now download entire folders as a zip file. I know I was sometimes frustrated at only being able to download files one-at-a-time, so this should be very useful. Selecting individual files in a folder to download is a feature that I will definitely include at some point, but is not a part of this release.<br />
<br />
Next, many users requested that they be able to access their removable SD cards and such. After some research, it seems that many device manufacturers have been including extra SD card slots in their devices---particularly tablets. This is troublesome, because even the most recent versions of the Android API only tell you where the "default" external storage is. Previously, DropSpot hid the internal stuff from you, and only showed you that "default" external drive. This was for convenience and simplicity, since most people don't care about the internals of their device. However, to access some of these alternative external drives, it was important to have that ability.<br />
<br />
My compromise is that, by default, folders which cannot be read AND written to are hidden, and when you first open the web interface, it defaults to that "default" external drive. Please see the wiki for more details on finding your external drives.<br />
<br />
Last, a handful of crashes reported have been fixed, as well as some web interface bugs. In particular, if your browser does not support the way DropSpot does uploads, it will properly let you know.<br />
<br />
Links:<br />
- <a href="https://bitbucket.org/dhleong/dropspot/wiki/Home">DropSpot Wiki</a><br />
- <a href="https://play.google.com/store/apps/details?id=net.dhleong.wfm">DropSpot Google Play Listing</a> ($1.99)<br />
- <a href="https://play.google.com/store/apps/details?id=us.danlib.igo.lite">DropSpot Lite Google Play Listing</a> (Free)Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-127191165678713412012-01-27T12:09:00.001-08:002012-01-27T12:09:28.070-08:00Getting Git-y<div><p>Now that BitBucket does free, private Git repositories, I've new going a little crazy adding a bunch of my projects, old and new, to Git repos and pushing them into the cloud for safe keeping. </p>
<p>In the process, I've decided to share some projects publicly on Github, as well. So far I've put up my Software Engineering project from last semester, and the experimental CMS that I wrote in AppEngine Python for my Orchestra's website. I'll probably post the Java Applet that goes with that CMS for publishing the website over SFTP sometime later. </p>
<p>It's nice to see my Github profile looking not quite so forlorn :) </p>
</div>Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-77206774721293563572011-08-07T16:49:00.000-07:002011-08-07T16:49:09.533-07:00WeGoIgo 1.16 and GnuGo 1.1Well, like I promised, I've released v1.16 of my WeGoIgo app and v1.1 of the GnuGo AI app. I haven't made all the changes I wanted to the interface-- I want to take some time to really think through the best way-- but I have made the magnifying glass try to go above your finger instead of to the side. I've also slightly improved the efficiency of the SGF loader, so people who've had trouble loading Kogo's might try to clear their cache and try again. No promises-- it was a very small change-- but you never know!<br />
<br />
The biggest thing here, as I said, is the AI. I'm confident that it will be more responsive and more stable-- something I know many people, including myself, have been wanting for some time.<br />
<br />
I haven't gotten around to releasing the update for the free version yet-- enjoy the perks, paid users! I changed my system for managing them so it's easier and quicker for developing, but publishing is not quite as automatic. But, since I spend more time developing than I do publishing, I'm happy with the tradeoff.Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com3tag:blogger.com,1999:blog-3039464082450875940.post-5845536352990576972011-08-06T21:20:00.000-07:002011-08-06T21:20:53.909-07:00UpdatesIt's been a while since I've posted, but I've been pretty busy working for <a href="http://minus.com/">Minus</a> (previously Min.us) developing their Android app, a job which I happily took over from my good friend Colin. Everyone should check out the service-- it's pretty slick. And, they've got a pretty awesome Android app, which should see a pretty good update sometime very soon.<br />
<br />
In other news, I've finally found my way back into my WeGoIgo code. It's definitely showing it's age (it was my first published app, and only the second I wrote). There's a lot of rugged stuff that shows how little I really understood about the platform when I first started, and I feel I've really developed as a programmer since I started the project about a year ago. I've already executed several ideas I had for revamping some of the code to make it sturdier and just generally better. The focus for the next release (whenever I have the time to finish some things up) will probably be AI. I've completely re-written the bridge between GnuGo and Android to make it faster, more efficient and stable, etc. I've also scrapped all the logic for the interactions between GnuGo and WeGoIgo and rewritten it, so that should also be significantly more stable. GnuGo will now throw up a Notification while it's running, so there's no doubt about whether it's crashed and just not told you!<br />
<br />
I may release just these changes if I don't have time to improve the interface like I want to, but I hope to add some fun enhancements to stone placement and stuff that I think everyone will like.<br />
<br />
Look forward to it!Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-74831219944249605282011-06-03T18:17:00.000-07:002011-06-03T18:17:35.829-07:00Silence O'Clock 2.1Just a quick post to note that I've updated Silence O'Clock to fix a pretty weird bug. Sorry for any inconvenience!<br />
<br />
If anyone else stumbles on a weird issue where they've got checkboxes attached to views in an ExpandableListView, and expanding/hiding the groups causes the checkboxes to go crazy, you might be doing something like this in your getChildView or getGroupView:<br />
<br />
<code> final Item item = getChild(groupPosition, childPosition);<br />
CheckBox enabled = (CheckBox) convertView.findViewById(R.id.enabled);<br />
enabled.setChecked(item.enabled); <br />
// reset with a shiny new listener<br />
enabled.setOnCheckedChangeListener(new OnCheckedChangeListener() {<br />
<br />
@Override<br />
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {<br />
// do something with "item"<br />
}<br />
});<br />
</code><br />
<br />
The problem is that hiding/showing the views actually causes them to be recreated. But, in an effort to be memory friendly, Android just reuses old Views. So, your call to setChecked() is actually firing the old OnCheckedChangeListener that was attached earlier, and which has reference to a different Item.<br />
<br />
The easy solution is to just clear the listener with enabled.setOnCheckedChangeListener(null); before you call setChecked(). Easy!<br />
<br />
<a name='more'></a><br />
<br />
Full changelog:<br />
<br />
<br />
* Fix: Missed one or two "slice" renames<br />
* Fix: Strange bug where expanding/hiding groups would cause<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>slices/groups to get toggled randomlyDaniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-21773378451334019712011-05-19T15:21:00.000-07:002011-05-19T15:21:25.692-07:00Silence O'Clock 2.0<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-eks4ASPAGfc/TdWXlXEEykI/AAAAAAAAAIM/Ik_WSTzLNzM/s1600/screenshot-3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-eks4ASPAGfc/TdWXlXEEykI/AAAAAAAAAIM/Ik_WSTzLNzM/s320/screenshot-3.png" width="212" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A demo of the spiffy effects on the Quick Slice creation widget.</td></tr>
</tbody></table>At long last, I've finished a bunch of new features and modifications to my Silence O'Clock app. Besides changing "Silence Period" to "Silence Slice"-- it's alliterative, and I wasn't a fan of the old wording anyway-- the biggest new thing is the addition of "Quick Slice." With Quick Slices, with just a "slice" (in this case, a sliding motion with your finger) and a couple taps, you can set your phone to silent for 15 minutes up to 6 hours, after which your ringtone will automatically be turned back on. This feature is perfect for movies or unscheduled meetings-- you'll miss any calls because you forgot to turn your ringer back on again!<br />
<br />
<a name='more'></a>+ There's now an option to have Notifications displayed during Silence Slices<br />
+ New "Quick slice" feature: a one-shot slice of silence for movies, etc.<br />
+ Shortcut available for creating Quick Slices<br />
* "Periods" renamed to "Slices" (as in "time slice")<br />
* Times for new Slices now start at the current time and end an hour after<br />
* Various dialogs now have a bit more explanationDaniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-82368915107985907252011-05-19T15:15:00.000-07:002011-05-19T15:15:06.686-07:00WeGoIgo 1.15Just uploaded yet another update. Someone requested the ability to pass in Joseki on the reviews, so I thought I'd go ahead and put it in. You can pass through the options menu, a new button that's only enabled if there's a "pass" in the dictionary for the current move, or if there's a "tenuki spot," which is just some label in the bottom corner without a variation associated.<br />
<br />
In other news, I've changed handicaps to follow this page: <a href="http://senseis.xmp.net/?path=Handicap&page=HandicapPlacement">http://senseis.xmp.net/?path=Handicap&page=HandicapPlacement</a>. I think this is more common. If you don't like those, however, I've also added custom handicap placement.<br />
<br />
Finally, I've added a bit more SGF/Tsumego compatibility, and updated the visual area calculation to include labels. Also, if it surrounded the board completely, it now shrinks it back down to what you'd expect.<br />
<a name='more'></a><br />
+ Added passing for Joseki; Clicking on the tenuki spot in Kogo (IE, a label without an associated variation) will also pass<br />
+ Added custom handicap placement!<br />
+ "Automatic" (Japanese) handicaps now match GnuGo's order<br />
+ More compatibility (specifically, old-style multiple labels, board size specifications for tsumego)<br />
* Fix: Visual area for Tsumego now takes labels/annotations into accountDaniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com4tag:blogger.com,1999:blog-3039464082450875940.post-81995795235186389052011-05-09T13:56:00.000-07:002011-05-09T13:56:06.478-07:00WeGoIgo 1.14Nothing groundbreaking in today's update for WeGoIgo, but a few fixes and changes that should make those users with small screens smile. You can now choose to view games in "fullscreen" mode, which hides the status bar and, if my emulator is to be believed, grants users with 3-inch QVGA screens just enough elbow room to use the navigation buttons when an ad is on screen. If you've got a nice beefy screen, or have paid for the ad-free version, this will just give you more room to read comments... but that's pretty cool, too, right? I also fixed a bug where, even if the ad slid off screen (which is automatic if any comments are there), you could still click on it somehow. My apologies to anyone affected by this issue for not discovering it sooner!<br />
<br />
In other news, I've continued to fiddle with my SGF reading and handling to make them even more forgiving. This is a formal plea to SGF developers or people just writing out their Tsumego problems by hand: Follow the <a href="http://www.red-bean.com/sgf/">SGF standard specifications</a>! It's easier for all of us. Regardless, this should make WeGoIgo official compatible with at least the kyuu-level tsumego on the venerable <a href="http://goproblems.com/">goproblems.com</a>. Thanks to Timo for your help finding incompatible sets!<br />
<br />
<a name='more'></a><br />
<br />
+ Fullscreen preference. Helpful for those with really small screens.<br />
+ WeGoIgo will now follow moves in SGF files even if they don't match the current black/white turn-- this is more in keeping with SGF standard<br />
+ Even MORE compatibility with non-standard SGF<br />
* Fix: If UI was covered by ads, trying to click on it when the ads hide no longer opens the (supposedly hidden) ad.<br />
* Fix: FC caused by loading a file, loading a second one that doesn't parse, then loading the first againDaniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com3tag:blogger.com,1999:blog-3039464082450875940.post-62524228917419576192011-04-12T09:28:00.000-07:002011-04-12T09:28:39.995-07:00WeGoIgo 1.12<span class="Apple-style-span" style="font-family: inherit;">Another quick-- but very important-- update for WeGoIgo. <span class="Apple-style-span" style="border-collapse: collapse;">The last update changed some things about loading files to be more compatible with poorly formatted files, but I neglected to notice that the change would not be compatible with the loading method used for Joseki (it's different because Kogo is so huge). As a result, an initial load of a Joseki file would get stuck at 0%-- anyone who had installed it and used Joseki before the update should be fine, but another change in the loading made WeGoIgo apparently refuse to read files it created (such as the autosave). These embarassing bugs have all been fixed with this update, so PLEASE grab it if you haven't!</span></span><br />
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="border-collapse: collapse;"><br />
</span></span><br />
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="border-collapse: collapse;">For those of you affected by the Joseki issue, you can to to Preferences > Advanced Preferences > Clear Cache to get rid of the failed Joseki reads. This applies to you if, when you load a Joseki, the board is empty and the comments field at the bottom says "End of recorded path."</span></span><br />
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="border-collapse: collapse;"><br />
</span></span><br />
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="border-collapse: collapse;">Sorry for the inconvenience! Full changelog after the break, as usual.</span></span><br />
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="border-collapse: collapse;"></span></span><br />
<a name='more'></a><span class="Apple-style-span" style="font-family: inherit;"><div>* Fix: Bug preventing Joseki from running their initial load properly</div><div>* Fix: Bug causing WegoIgo to refuse to read files it created itself.</div><div><span class="Apple-tab-span" style="white-space: pre;"> </span>That's embarassing!</div><div>+ Item in Advanced Preferences to clear the cache-- useful for those</div><div><span class="Apple-tab-span" style="white-space: pre;"> </span>having problems loading Joseki so they can retry without losing</div><div><span class="Apple-tab-span" style="white-space: pre;"> </span>all of their Tsumego data.</div></span>Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com2tag:blogger.com,1999:blog-3039464082450875940.post-33908983295170370502011-04-09T07:40:00.000-07:002011-04-09T07:40:54.123-07:00WeGoIgo 1.11Just a quick post to announce that I've (finally) posted version 1.11 of my Go app. I decided to take a break from my class projects and address some issues with loading SGF files that I've been emailed about. Otherwise, the full version is withing spitting distance of 100 downloads, and the lite version is not that much further from 3000. I'm pretty excited! I'll be more excited, though, when I'm done with all the projects I have to do and can back to working more on those I want to do, like this.<br />
<br />
Full change log after the break<br />
<a name='more'></a><br />
* Fix: Potential crash for really small boards<br />
+ Various improvements of compatibility with SGF files that don't conform to standards; generally increased poor formatting toleranceDaniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-31335833164207193642011-03-25T09:24:00.000-07:002011-03-25T09:24:26.377-07:00Silence O'Clock 1.3Just a quick update to point out that I released v1.3 of my Silence O'Clock app today. This version brings a slew of bug fixes that have been waiting a long time to see the light of day. I would love to have pushed them out sooner, but have been swamped with work for my various classes and have just had zero time to myself. Hopefully I'll get some more time soon, because I have a lot of exciting ideas for WeGoIgo, not to mention my games.<br />
<br />
<a name='more'></a>Full changelog:<br />
<br />
* Fix: Incorrect group being checked when editing the group<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>of an existing period<br />
* Fix: "No group selected" error message when creating a new group<br />
* Fix: Toggle boxes showing incorrect state after opening/closing a group<br />
* Fix: The default hour settings when creating a silence period were wonky,<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>and caused a FC if in 24-hour time.Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-7827039238347705472011-02-13T14:57:00.000-08:002011-02-13T15:21:12.782-08:00WeGoIgo 1.10Didn't I say I wasn't going to be working as much on this for a while? Ah, well.<br />
<br />
Version 1.10 brings some pretty nice improvements, like faster draw speeds for games with lots of stones (noticeable when using the magnifying glass), a more comprehensible stone toggling functionality when trying to use the "score" button on games (note that this is still NOT that accurate, and should be used more for visualization), and a comments popup window, that might be helpful if your device has a small screen.<br />
<br />
In other news, apparently my developer's info thing hadn't updated when I posted yesterday, as WeGoIgo Lite now shows over 1700 downloads. I'm very excited by this! I also received the following review, which made my day:<br />
<blockquote><span class="Apple-style-span" style="color: #555555; font-family: Arial, sans-serif; font-size: 13px;">This has the potential to be the best Go study tool on any mobile device. Keep up the great work.</span></blockquote>Thanks, Mark, for your support!<br />
<br />
As usual, the full changelog is after the break.<br />
<br />
<a name='more'></a>* Fix: Board Coordinate numbering follows convention properly now<br />
* Fix: Sped up drawing when there are many stones on the board<br />
+ Improved the stone toggling algorithm when scoring games. Note that this still very approximate, and should probably NOT be used for official score-keeping!<br />
+ "Comments" button on the options menu when reviewing a game, Joseki, or Tsumego to open a window for viewing comments.... Should help people with smaller screens that don't have much room for the comments box.Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-71123130070150110952011-02-11T13:31:00.000-08:002011-02-11T13:45:41.481-08:00WeGoIgo 1.9Released version 1.9 of WeGoIgo today. Not many huge changes, but several bug fixes.<br />
<br />
Among the "nice new things," the circle magnifying glass will now properly "look at" points in the corners, and there are some coordinates on the side of the board, to help with reviewing games. They're kinda small (especially on phones with small screens), but there's not a whole lot of room, and I'm trying to maximize stone space, so it's easier to place stones where you want to. It's better than nothing, right?<br />
<br />
Also, I'm excited to announce that WeGoIgo is now in the 50-100 downloads range. Thank you to everyone for your support! The lite version is almost at 1500 downloads-- wow!<br />
<br />
Full change log after the break<br />
<br />
<a name='more'></a>* Fix: Crashing when various SGF-loading errors occur<br />
* Fix: Help file showed wrong default location for archive files<br />
* Fix: Potential crash when loading archive games<br />
* Fix: The magnifying glass can now "see" the corner points<br />
* Change: Order of handicaps is now more sensible<br />
* Change: Added a title to the Tsumego context menu<br />
+ Board Coordinates now show when playing/review games, and for Joseki. They're a bit small, but there's not much space.Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-19560437883624129462011-02-10T14:39:00.000-08:002011-02-17T19:56:41.700-08:00Silence O'ClockToday I published a simple app to automatically set your phone to silent (or vibrate) mode. The one I had been using didn't have a toggle feature, so if you wanted to temporarily disable some setting (like classes, when going on break), you had to delete it, and then add it back later-- a huge pain! In response to this frustration, I sat down and wrote this app. Not only can you toggle individual Silence Periods, but each Period belongs to a Group, which you can toggle in order to disable or enable every Period that belongs to it at once-- Now, I can just put all of my Silent Periods for class in a group, and just toggle that checkbox on breaks. Perfect!<br />
<br />
Silence O'Clock is just $0.99 in the Market. I'll probably release a free version with limited features (probably just a single group, for example) at some point in the future.Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0tag:blogger.com,1999:blog-3039464082450875940.post-32523145096587736952011-01-15T16:58:00.000-08:002011-01-15T16:58:00.086-08:00WeGoIgo 500+Nothing too substantial to report today, but I was excited enough that I thought I'd share: I was happily surprised today when I loaded up the Android Developer's page, to see that WeGoIgo Lite has seen over 500 total downloads. I would be even happier to see that many purchases of the paid version, but I can't complain ;) This project was always a labor of love, and the fact that I'm getting any money out of it at all is a truly exciting thing, and a first for me-- the vast majority of my pet projects haven't left the safety of my harddrive.<br />
<br />
In other news, I've come up with what, I hope, will be a very fun and interesting new game, and one which, to my knowledge, will be pretty unique, too. I don't want to reveal anything yet-- it's little more than a freshly created project in Eclipse and an idea in my head, but I thought I'd throw it out there that I'm developing more than just WeGo.<br />
<br />
That being said, my frantic update pace from the first couple weeks is sure to fall-- University is starting up again in a few days, in addition to this new project-- but fear not! I am still very interested in improving WeGo, and my To-Do list for it is by no means empty.<br />
<br />
Thanks to everyone who's purchased my app and supported it so far, and a special extra thanks to everyone sending me constructive emails with suggestions and bug reports!Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com2tag:blogger.com,1999:blog-3039464082450875940.post-79047381216807051872011-01-02T18:46:00.000-08:002011-01-02T18:46:19.215-08:00WeGoIgo 1.7Today I've released v1.7 of my Go app. While functionally there's just a minor bug fix, there are a couple graphical changes that combine to (I think) represent a drastic improvement. First and easiest is the addition of shadows to the stones. This was a sort of "while I'm at it" thing, but I think it looks really nice, and gives a depth to the board that wasn't there before.<br />
<br />
Next, I've changed the zoom box/magnifying glass drastically. It's no longer a (rather ugly) rounded square, but a circle. In addition, it has a nice shadow, and a light shine, giving it some depth as well. I'd received some complaints that the zoom box was more confusing than helpful, because it wasn't much different from the rest of the board, and I hope that these changes will help to ameliorate that situation.<br />
<br />
Updated screenshots and full changelog after the break.<br />
<br />
<a name='more'></a>+ Stones now have shadows!<br />
* Change: Zoom box is now circular, and (I hope) more clearly<br />
distinguishable from the rest of the board<br />
* Fix: Move numbering was incorrect when loading single games<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/_t1Zb1GWI2wQ/TSE4KPCiymI/AAAAAAAAAGw/MSg_lsIjUrw/s1600/screenshot-3-new.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://1.bp.blogspot.com/_t1Zb1GWI2wQ/TSE4KPCiymI/AAAAAAAAAGw/MSg_lsIjUrw/s320/screenshot-3-new.png" width="179" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Some closeups of the shadows</td></tr>
</tbody></table> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/_t1Zb1GWI2wQ/TSE396dafmI/AAAAAAAAAGo/GPi5NiwrFNw/s1600/screenshot-1-new.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://3.bp.blogspot.com/_t1Zb1GWI2wQ/TSE396dafmI/AAAAAAAAAGo/GPi5NiwrFNw/s320/screenshot-1-new.png" width="179" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The magnifying glass in action!</td></tr>
</tbody></table>Daniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com1tag:blogger.com,1999:blog-3039464082450875940.post-77884091244184748652011-01-01T16:29:00.000-08:002011-01-01T16:32:36.971-08:00Happy New Year and WeGoIgo 1.6Happy New Year, everyone! Here's hoping 2011 treats us all well. <br />
<br />
In App news, I just pushed out WeGoIgo v1.6 for both lite and paid versions. This release has a slew of fixes and a preference to flip the positioning of the zoom box-- this should be relevant for anyone who thinks the tilt-sensor puts the box on the wrong side, or for those just using static positioning but hold their phone in the other hand.<br />
<br />
<a name='more'></a>+ New preference to flip the position of the zoom box<br />
* Fix: The FolderPrefs now sorts case-insensitive-ly<br />
* Fix: Importing Tsumego/Archive collections from the<br />
Acceptor (File manager interface) no longer crashes<br />
* Fix: Folder preferences are properly respected in the Acceptor<br />
* Fix: "Next Unsolved" preference ignored solved problemsDaniel Leonghttp://www.blogger.com/profile/12375245316456666374noreply@blogger.com0