LMeve state: back from the dead, work in progress

LMeve state: back from the dead, work in progress

Hi Spacefriends!

First of all, thank you for continued support and all your e-mails and EVE mails. I was surprised that so many people still use LMeve! I can’t simply ignore so many kind words and encouragement. Thank you for that!

I’m proud to announce that despite limited free time, I’ve finally managed to restore the core functionality of LMeve: Industry Tracking.

LMeve Industry tracking using ESI LMeve Industry tracking using ESI

User Story

You might wonder why it took so much time to restore any functionality, so here’s the story. When XML API cutover was announced, I realized I have to modify the backend of LMeve: the engine that handles API and feeds LMeve with data. But the old backend was written in plain procedural PHP. It was spaghetti-quality code, that was hard to modify and maintain, and even the simplest modification had to be done in multiple places in code. So I decided I have to rewrite it from scratch, this time as well as best as I could, so the new code would be easier to maintain once it’s done. The new ESI backend is written in objective PHP, with two main template classes and several inherited classes. The main one is ESI class and it represents the API itself. It allows access to routes, handles refresh and bearer tokens and all the necessary operations such as token renewal. You can easily access any route using simple but powerful instantiation: $ESI->Characters->getCharacterName($characterID) for example will provide a toon name when provided with character ID. Very easy to use, right? Each route inherits the Route base class, which handles the low level network communication, reporting and error handling. It also supports paginated output on ESI routes using the X-Pages header.

Moreover, this class can be used not just in the backend of LMeve, but in the GUI as well. It can be used to fetch data from ESI directly. Other apps such as my Annual Stats can (and actually already do) use it. This is why it was worth to take the rewrite-from-scratch approach, even if it took more time!

How to upgrade

  1. Right now simply download the new PHP code and overwrite your current installation. Don’t worry about the database tables, because DB will be updated automatically the first time you log in.
  2. Second step is to enable the EVE SSO using this helpful wiki guide: Integrating LMeve with EVE SSO .
  3. Then go to Settings and make sure Enable ESI Poller is checked.
  4. Last but not least, head to Settings -> ESI API tokens and create New ESI token. Please mind you must have a Director role to do this.

What works, what does not

Please remember this newest version is still a beta. Logging is heavy, so you might want to rotate your logs more often.

What works:

  • ESI integration and token management
  • ESI status checking and alerting in case of failure
  • Corp Member information
  • Industry Tracking and Tasks Tracking

Roadmap for the next releases:

  • Market prices
  • Assets
  • Wallet
  • Contracts
  • Killboard

I will release one feature at a time, using Agile approach.

What can You do to help?

I would like to ask You for some support. How can You help?

  • Use and test the new LMeve version. Bug report on the project’s Github page (please check the list of features that currently work and which don’t before you report)
  • Need a new alt for Industry? Use my buddy invite to register. You will get an extra 250.000 SP on your new character as a bonus.
  • Wanna send a tip? I could always use some extra buck! Here’s my PayPal donation page. It will also be easier to convince my better half that I need to spend some time on a freeware app for video games 🙂 just sayin’

Insert coin!

Thanks! Your help and support is always welcome and appreciated!

Special thanks goes to: Random McNally, Rixx Javix, Ramdar Chinken, Marq Aideron and Starfire Dai.

LMeve state – ESI support is not ready

LMeve state – ESI support is not ready

Traffic advisory

I’ve started updating LMeve to ESI four months ago (see the project site on github https://github.com/roxlukas/lmeve/), but due to RL being rather harsh on me for the past couple of years regarding free time, I don’t have enough of it to finish necessary modifications before XML API cutover. I’m truly sorry about that, but there is little I can do to speed it up. Unfortunately I haven’t found any other third party dev interested in helping me update LMeve either.

Here’s the current status:

  • new ESI poller library: DONE
  • ESI base class (token exchange, cache handling, exception handling, performance measurement): DONE
  • GUI for authentication and token echange: DONE
  • corporation sheet ESI-to-database mapping: DONE
  • corporation members ESI-to-database mapping: DONE

As you can see a lot of the low-level stuff is already done, but the most important now to make LMeve work would be to continue mapping data from ESI to LMeve database tables:

  • industry jobs
  • contracts
  • killmails
  • wallet journals
  • market orders
  • market prices

I haven’t abandoned the project, but it has to wait until RL settles a bit (i.e. doing less projects in the evening). This may take a month, or this may take five months, I can’t tell. Maybe if LMeve *was* a commercial project, it would speed things up… but I really want to avoid running a kickstarter for this. I’d like to keep LMeve free for everyone to use.

TL; DR

LMeve will no longer receive data from EVE Online servers after downtime, May 8th, 2018.

Bookmarks sync bug in iOS 6

Help, my bookmarks are stuck!

The Apple Maps in iOS 6 is nothing. Give them enough time, and they will eventually catch up with reality (and maybe with Google at some point). I do have a rather serious issue with iCloud bookmarks sync, though. Since the release on 19th September, my Safari bookmarks have doubled first (breeding like rabbits!), then stopped syncing. Moreover, I am unable to delete them or add any new bookmarks (the Delete button accepts the tap, but then does exactly nothing). Switching iCloud sync for Safari on and off in Settings does nothing either. iCloud tabs keep working even though Safari has been disabled in iCloud options!

As a technical person I would not just sit and wait until someone else finds a solution: I’ve started digging myself. First thing I’ve checked was the Diagnostic Logs (Settings -> General -> About -> Diagnostic & Usage -> Diagnostic & Usage Data).

The culprit is a small lesser daemon

Bingo! This is what I’ve found:

It seems that a process called webbookmarksd is killed by the kernel every few minutes with SIGSEGV. I bet this is eating a lot of battery, because CPU is wasting its time trying to restart the daemon every time it fails (and then wasting even more battery writing the crashlogs).

The next logical step was visiting Apple Support website, specifically the FAQ about problems with bookmarks (TS4001). Unfortunately, after reading through the FAQ and doing all the steps mentioned there – I’m still stuck with the problem.

What now?

For the time being I have filed a bug report on Apple Developer website and wait for Apple response or a working untethered jailbreak for iOS 6, whichever comes first.

You can read more about the issue on Apple Community Support forum: https://discussions.apple.com/thread/4313906?start=0&tstart=0

Solution already exists, no jailbreaking required

As I have initially have guessed, the issue was caused by a broken bookmarks file. Other users who have encountered that problem were able to resolve it with the procedure in this thread: https://discussions.apple.com/thread/4333351?start=15&tstart=0.

I have followed the procedure from the thread and it worked – my iPad 2 works just like new, bookmarks are syncing fine and they are no longer stuck:

  1. Disabled iCloud backup and did a standard backup to iTunes
  2. Edited the backup with iBackupBot, replaced the broken bookmarks.db with one from this address: dropbox link
  3. Restored the edited backup with iBackupBot
  4. iPad did not reboot and it was stuck at recovery screen
  5. I put the device into recovery mode again, by holding the power and home buttons. As soon as Apple logo appeared, I released only the power button.
  6. “Connect to iTunes” logo appeared
  7. I did a restore in iTunes now, usingthe same edited backup – it seems iBackupBot did something wrong.
  8. iPad has restored successfully, duplicate bookmarks are gone, no more crashing webbookmarksd
  9. Re-enabled iCloud backup and bookmarks sync

Remember, by following this procedure, you do so at your own risk!

PS. I did the iOS 6 update at the same time on both my iPad 2 and iPhone 3GS, which had iCloud sync working perfectly fine in iOS 5. iPhone 3GS was completely unaffected by this issue, even though the same set of bookmarks was used by both devices.

Quick Review of Windows 8 Consumer Preview

Yesterday Microsoft has released the second public beta-version of the new Windows 8. I have downloaded both the 32 bit and 64 bit versions of Windows 8 Consumer Preview for testing – you can download them for free from Microsoft’s website: http://windows.microsoft.com/en-US/windows-8/iso

VMware Server 2.0.2 installation

INCOMPATIBLE

Unfortunately, Consumer Preview behaves just the same way as Developer Preview did – the adventure with 32 bit version ends pretty quickly with a BSOD immediately after booting the virtual machine (error message shows HAL_INITIALIZATION_FAILED). Since I have no 64 bit host available, there was no point in testing the 64 bit guest.

I will try VMware Player 4 and Oracle Virtualbox 4 later on, so feel free to bookmark this page and come back later.

VMware Player 4.0.2

COMPATIBLE

There was no issues with installing Windows 8 on VMware Player 4. I have tried both 32 and 64-bit versions, both install without a problem. It is worth mentioning that in VMware Player 4 the seamless mouse integration works without installing VMware Tools in the guest operating system. The performance of the virtual machine is surprisingly good – animations are nearly fluent.

VirtualBox 4.1.8

COMPATIBLE

Windows 8 install works just fine – I have installed and tested the 32-bit flavour. I have also noticed, that using your Windows Live! ID on more than one computer will synchronize the look and feel of Windows between these computers. If you click a confirmation link in an e-mail, which comes shortly after the installation, you will be able to use this computer to recover your Live! ID password. Similar to VMware Player, both the mouse integrations and machine performance work very well without installing VirtualBox Guest Additions.

Bare Metal installation – Desktop PC

I have tried to install the 64 bit version first on the following machine:

  • Intel Core 2 Quad Q6600 (2.4 GHz)
  • 4 GB DDR2 RAM (OCZ)
  • DFI Blood Infinity P35
  • nVidia GTX 550Ti 1024MB GDDR5

Unfortunately the installer failed at 21%, throwing a “Cannot copy windows files” error. At this point I have no way of telling if this is a problem with the download or the ISO itself.

I had more luck with the 32 bit version. Since my PC is already 4 years old, it’s not a surprise that Windows 8 did not ask me for any drivers. This is what I saw after booting the installed system and logging in with my Windows Live! ID account:

Besides a different background it looks almost the same way as the Developer Preview did. Let’s have a look at the desktop then, maybe we spot some differences there:

No kidding! Menu Start is indeed, history. How do I get back to the Metro Start page? I have quickly found out, that you just need to move the cursor to the lower left corner. Click. That’s it! Simple, isn’t it? Maybe other corners hide some features as well?

Both my inner geek and my inner explorer were quite excited at this point.

So, both corners on the right side of the screen trigger the “settings” sidebar (those sidebars are called “Charms“).

The first icon is desktop Search: it will look for a file or program with the specified name, but also for programs available in the Store. “Share” allows to share files with other users. “Start” will bring you back to the Metro Start Page. “Devices” allows to safely remove hardware such as USB sticks or hard drives. “Settings” is app sensitive. It will allow you to shut down or reboot your Windows, reach the Control Panel (it’s Metro counterpart is just called “Settings”) or access app-specific settings. Some apps, like Internet Explorer 10, have two more Charms: bottom and top (for address bar and navigation icons).

But where do one gets apps from? And this is another new feature of the Windows Consumer Preview: from the Store:

Yes, this is the well known “Cut the Rope” game, now also available for your Windows 8. All apps available right now are free and Metro-enabled. The new UI is more like what we are used to on tablets and mobile phones. For example, the Weather app looks like this:

Here you can also see the app-sensitive settings available from the top.

 Let’s get back to the Desktop and see if any features known from Windows 7 are still there. It seems, that customization options are very similar – almost the same. It is possible to change the Aero color, desktop background or show/hide My Computer, My Documents and Network icons:


Gadgets are also available, so if you liked them in Windows 7, it is still possible to use them in Windows 8:

As you have probably noticed this far, everything in Windows 8 is shaped as a perfect rectangles. Microsoft left all the rounded corners for Apple and made a very distinct look and feel. Surprisingly, it feels very natural – Metro UI is quite useful. The small app tiles on the Start Page will display information once the corresponding app is started, so information like weather or recent tweets are visible right away, without the need to open the app. Old programs run seamlessly in the desktop mode, while the new ones run in Metro mode.

Internet Explorer 102

The default internet browser now comes in two flavours: Metro and Desktop. And no, this isn’t just two UIs for the same program. These are two different applications with separate settings , bookmarks and cookies. Log on to a website with the Desktop one, you will have to login again if you switched to the Metro IE. IMHO this should be unified before releasing Windows. Otherwise how would you synchronize a Windows 8 tablet with a PC, if it’s impossible to sync the two browsers on the same PC?

I have three distinct feelings after an hour with Windows 8:

  • I have almost an urge to mash the ESC key to exit a Metro app back to Start Page – I don’t know why it feels this way, but I’d see one key to exit back to Start Page. It feels so natural!
  • There is no way to quickly kill all running apps. You have to use the Task Manager. A screen with all running apps would be great. So far we only have the alt-tab:
  • If I had a Windows 8 tablet, Windows Phone powered mobile, an XBOX 360 console and Windows 8 on my desktop, the experience would be very much like iOS, Mac OS X and iCloud. Good job on catching up, Microsoft!

Overall impression

Microsoft managed to get all of us excited – something usually reserved for Apple. In comparison to Windows 8, Mountain Lion looks a bit pale: Windows 8 is a new experience, a revolution similar to Windows 95, while new Mac OS X only brings some cosmetic changes.

One more thing that came to my mind is Unity interface introduced (and iterated upon) in Ubuntu 11.04. It seems that every major OS brings its own distinct look and feel, breaking the “windows-like” trend observed after the release of Windows 95.

One more thing: EVE Online

I would not be a dedicated EVE Online player if I haven’t tested the compatibility of our favourite game with the new Windows. So I have started EVE, and… I saw the Splash, and then it crashed.

…FAIL!

Unfortunately I didn’t have much time to debug it and find what the issue is. Will try again after installing nVidia display drivers instead of Microsoft’s ones.

INCOMPATIBLE?

Android 4.0 running on x86 CPUs

This morning the android-x86 team has released a RC build of Android Ice Cream Sandwich. It comes in a few flavours: Asus EEE-PC, Asus notebook and AMD Brazos to name a few. If you have a different netbook, fear not: the EEE PC build should run just fine.

I have installed the new build on my Acer Aspire One AOA110 (ZG5) and most features work out of the box:

  • Atheros WiFi card
  • Intel 945 graphics
  • Touchpad
  • Android Market
  • Fake SD card
  • Camera
  • Suspend – a bit buggy

Unfortunately, ethernet networking is still not supported (it’s been this way since 3.2), so this build will not have connectivity when running in VMware or Virtualbox. The same applies to the ethernet adapter in netbook itself.

EDIT: The following ISO image supports Ethernet on Virtual Machines: http://www.buildroid.org/Download/android-x86-vm-20120307.iso.gz Please keep in mind that this build does not have Android Market/Google Play.

Remember not to install GRUB if you install Android alongside other operating systems – it will leave other systems unbootable!

To remedy this, I have added these lines to my /etc/grub.d/40_custom file:

menuentry "Android-x86 4.0 Ice Cream Sandwich" {
insmod ext2
set root='(hd0,5)'
linux /android-4.0-RC1/kernel quiet root=/dev/ram0 androidboot.hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-4.0-RC1 DATA=
initrd /android-4.0-RC1/initrd.img
}

UPDATE: First paid 3D game that works on Android x-86 is Fruit Ninja. Congratulations, Halfbrick!

And here you can have a look at some screenshots from this new build:

iOS programming and networked spaceships game

If you’re reading this, you might wonder. What this Rox guy is about here? It’s actually pretty simple. Apple has published a dedicated App yesterday for it’s iTunes University spin-off thing, which allows universities and schools to publish their courses online (and most of them do it for free). So without thinking much, I’ve signed up for the iTunes U version of Stanford’s CS193P course, which is about iOS programming. But how does programming connect to spaceships you ask?

It seems that Paul Hegarty from Stanford University likes networked spaceships a lot:

“You’ve got the spaceship game and some other client (it’s a networkd thing) and some other client shoots your spaceship. Now the model has changed, because your spaceship took damage.”

If you own an Apple mobile device, have some object-oriented programming experience and would like to know more about programming for iOS, this course is for you. If you are an EVE player, you will laugh jut a bit more often, when professor Hegarty mentions his internet spaceship game example.

The course covers such areas as:

  • The Model, View, Controller paradigm
  • Objective C basics
  • Cocoa touch UI and various input methods
  • Multithreading
  • Persistence and iCloud

One question remains: is this a pure coincidence, or does professor Hegarty actually play Eve Online?

Webserver Logs vs Google Analytics

Who should read this post

My fellow EVE bloggers and all other webmasters who care about their site and would like to have more visitors.

Logs vs Reports

Many website admins have to decide which is better for analysing traffic on their website. I was struggling with answering this question as well, but the latest improvements introduced by Google (Real Time (beta) or Intelligence Events) make Analytics a great tool, that no logs or log parsers can compete with.

Raw Apache logs are very useful for most anything – from analyzing the number of “hits” on the website, to debugging errors in the PHP code. Unfortunately, they do not gather as much information as Google does. Analytics on the other hand uses cookies to track users movement around the website and allows to discern returing users from new ones. It also collects information such as screen resolution, flash and java versions, language, website loading time, the domain of the visitor or approximate location based on GeoIP.

Apache LogsI used to favor Apache logs, because with tools such as Webalizer it was possible to see graphs and trends of visits. When skimming through the raw log it is also possible to see the IP address and other corresponding data such as OS and browser versions. Unfortunately, neither raw logs, nor the reports based on them are going to say anything more than that, not to mention that raw logs are not the easiest (or interesting in that matter) things to read.

And there comes Google Analytics. You can’t access the raw data gathered by Google, but Analytics reports are very useful, not just for bloggers, but also for big websites and e-commerce based companies. Moreover, you can create your own custom reports,which can be based on any of the available metrics.

But why am I saying all of this to you?

CCP was here!

Because thanks to Analytics I was able to make some very interesting findings. For one, I know that CCP devs have been visiting my website since I started publishing information about Crucible (so I have promptly added the copyright notices everywhere 😉 ). I know that an Asus EEE Pad Transformer owner from Ontario has visited my website (and I think I know who is that 😉 cheers to Kirith Kodachi).

Visitors world map I know that most EVE Online players come from US, UK Russia and Germany. I know that most of the visits come from Google search. Twitter and various forums only make a fraction of percentage in my incoming traffic.

I know what keywords people used to land on my website and what information to feed them with to achieve more visits. Of course this information/opinions need to have proper quality, because otherwise  these users will not return. Posting accurate information is crucial. When visitors consider your information important and accurate, they are more likely to spread it further, this includes forum links or sharing on Twitter and other social networks.

One day my post about Cockroach ship has received about 150 hits in just one hour. I wondered why people would out of a sudden begin looking for a ship, which is hid deep in the EVE data dump, and is rarely seen by players. So I started investigating. My post was quite high on the Google search for the keywords containing “eve online cockroach”, so the question remained, what is the root cause. I quickly found it was a Facebook post of CCP employee, who linked a killmail of one of the GMs, who lost his Cockroach to a group of players.

Can your webserver logs tell you this much?

I don’t think they can. So now go and connect your blog to Analytics. You will not regret, it’s a very powerful tool.

Android Honeycomb 3.2 running on x86 CPUs

NEW: Android 4.0 Ice Cream Sandwich running on x86 PC/netbook: check this post


The Android-x86 project has recently released Android Honeycomb 3.2 compiled for x86 processors. It can easily run on a PC, laptop, netbook or even inside a virtual machine. Moreover, this version includes Android Market! Unfortunately, the current RC2 build does not have any Ethernet kernel modules compiled, so it is not possible to access the Internet if you install it on a VMware or Virtualbox virtual machine.

Is it just a toy for geeks or can it be actually useful? I vote for the latter, but not just yet. Developers need to notice and support the new platform first. We also have to know, that some netbooks have already been sold in dual boot Windows – Android configuration (look for Acer Aspire One D250). Android can be actually more useful for netbooks than Windows. This is due to short boot times and lots of useful widgets, which display information right on the desktop. I have successfully used Android 2.2 for a while on my Acer Aspire One for some time, and I was only missing the Android Market and a bit more stability regarding power management (problems with waking up from stand-by).

But as you recall, I have also mentioned the need for developer support. Why? Because Android running on x86 CPU will only run SDK based apps. It won’t however work with more advanced games or apps written in NDK. Why? Because NDK apps are compiled for a specific CPU – ARM in this case. NDK based apps would have to be recompiled in order to run on x86 CPUs. So until x86 Android becomes a widely recognized platform, we will probably not be able to run most games and programs on this platform.

UPDATE: First paid 3D game that works on Android x-86 is Fruit Ninja. Congratulations, Halfbrick!


EDIT: I have just installed the Honeycomb 3.2 on bare metal – Acer Aspire One (AOA 110 / ZG5). The eeepc build works out of the box, with smooth accelerated graphics, working WiFi and Android Market.

Works out of the box:

  • WiFi
  • Sound
  • Touchpad
  • Browser
  • Android Market
  • Mail
  • Settings
  • Widgets

Does not work:

  • SD card emulation (storage works as USB instead)
  • Screen will sometimes rotate randomly
  • After one sleep/wake cycle it can’t wake up.
  • Voice commands (Audio error)
  • Ethernet (there is no kernel module)

To install it alongside an existing linux distribution, about 3-4 GB of space is required. You can use GUI based GParted to shrink your exisiting linux partition, or console based e2fsresize. DO NOT LET THE ANDROID INSTALLER TO INSTALL GRUB – it is known to cause your previous linux unbootable. Instead, after performing the Android installation, edit your existing GRUB2 configuration (Ubuntu example for /dev/sda5 below)

sudo vi /etc/grub.d/40_custom

Add the following lines at the end of the file:

menuentry "Android-x86 Honeycomb" {
  insmod ext2
  set root='(hd0,5)'
  linux /android-2011-11-13/kernel quiet root=/dev/ram0 \
     androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode \
     SRC=/android-2011-11-13 DATA= DPI=160
  initrd /android-2011-11-23/initrd.img
}

Save file, run update-grub

A bug in iOS results in poor battery life

It seems a lot of people is displeased with the battery life of the new iPhone 4S. Unfortunately, the problem is not limited to the new iPhone users: other devices have been impacted by the problem as well. My iPhone 3GS with iOS5 is almost half discharged after a day on standby. I blamed it on the battery age at first, but many other people have started complaining about the same issue.

I did have a similar issue with my iPhone 3G at some point – when one of the processes kept running on the CPU. This issue looks similar, but is related to Location Services. In iOS5 Apple has divided System Services from other apps, and one of them seems to be the problem – the Setting Time Zone service. If you enable the Status Bar Icon, it will constantly show near the battery icon, meaning that something is using Location Services all the time. Disabling the Setting Time Zone service seems to fix the problem.

Location Services on iPad Location Services on iPhone

Trouble with installing iOS 5

I have always updated my iDevices just after the new firmware was available, and never experienced any problems. Unfortunately, installing iOS 5 was not as smooth ride as I expected it to be.

To my surprise, iTunes has reported errors 3004 and 3200 several times, and my iPad remained stuck in DFU mode. I have quickly googled to check if none has similar issues to mine and read several posts on forums. People suggest to add a manual entry for Apple’s gs.apple.com to the hosts file.

Unless you have jailbroken any of your iDevices, just be patient and keep trying every now and then – it will update at some point. If you did jailbreak any device on your computer, it is possible that the jailbreaking tools has added an entry to the system hosts file.

To check if your computer is affected:

  • Go to C:\Windows\system32\drivers\etc\hosts
  • Remove any entries regarding gs.apple.com

Once done, just keep trying to restore your iDevice every few minutes.