EzDevInfo.com

Versions

Helping you find inner peace when comparing version numbers in Swift.

What version of Android should I develop for?

How should I make the choice ? What are the parameters I should take into account ?


Source: (StackOverflow)

What do the numbers in a version typically represent (i.e. v1.9.0.1)?

Maybe this is a silly question, but I've always assumed each number delineated by a period represented a single component of the software. If that's true, do they ever represent something different? I'd like to start assigning versions to the different builds of my software, but I'm not really sure how it should be structured. My software has five distinct components. Thanks in advance!


Source: (StackOverflow)

Advertisements

How best to use File Version and Assembly Version?

In .NET there are two version numbers available when building a project, File Version and Assembly Version. How are you using these numbers? Keeping them the same? Auto-incrementing one, but manually changing the other?

Also what about the AssemblyInformationalVersion attribute?

I'd found this support Microsoft Knowledge Base (KB) article that provided some help: How to use Assembly Version and Assembly File Version.


Source: (StackOverflow)

How to delete a s3 version from a bucket using boto and python

When I try to delete a bucket using the lines:

conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)

print conn.delete_Bucket('BucketNameHere').message

It tells me the bucket I tried to delete is not empty.

The bucket has no keys in it. But it does have versions.

How can I delete the versions?

I can see the list of versions using bucket.list_versions()

Java has a deleteVersion Method on its s3 connection. I found that code here:

http://bytecoded.blogspot.com/2011/01/recursive-delete-utility-for-version.html

He does this line to delete the version:

s3.deleteVersion(new DeleteVersionRequest(bucketName, keyName, versionId));

Is there anything comparable in boto?


Source: (StackOverflow)

How do I test the current version of GCC?

I would like to include a different file depending on the version of GCC. More precisely I want to write:

#if GCC_VERSION >= 4.2
#  include <unordered_map>
#  define EXT std
#elif GCC_VERSION >= 4
#  include <tr1/unordered_map>
#  define EXT std
#else
#  include <ext/hash_map>
#  define unordered_map __gnu_cxx::hash_map
#  define EXT __gnu_cxx
#endif

I don't care about gcc before 3.2.

Note: I am pretty sure there is a variable defined at preprocessing time for that, I just can't find it again.


Source: (StackOverflow)

Percentage users still on iOS 3.x? Should I bother?

I know its been asked/answered before, but everything I look at is from back in July, or otherwise out of date.

Should I bother making my app compatible with iOS 3.x (probably 3.1.2 and up)? Means extra testing some coding changes, etc, etc.

Or are enough users on iOS 4.x that I don't need to worry about it.

If there are any sites that keep up to date (daily, weekly, even monthly) stats, please post.


Source: (StackOverflow)

Cornerstone vs Versions for Mac OS X [closed]

I've been using svn on the command line for 5+ years, but I'm thinking of switching to GUI. The two kings of Mac subversion apps seem to be Versions and Cornerstone. Most of the reviews/comments I've seen comparing the two are from way back in 2008, when Cornerstone was first released. It's now 2010, and both apps have undergone significant changes.

I've been running trial copies of both apps for the past week, and I still can't make up my mind. Which would you recommend and why?


Source: (StackOverflow)

Patching Java software

I'm trying to create a process to patch our current java application so users only need to download the diffs rather than the entire application. I don't think I need to go as low level as a binary diff since most of the jar files are small, so replacing an entire jar file wouldn't be that big of a deal (maybe 5MB at most).

Are there standard tools for determining which files changed and generating a patch for them? I've seen tools like xdelta and vpatch, but I think they work at a binary level.

I basically want to figure out - which files need to be added, replaced or removed. When I run the patch, it will check the current version of the software (from a registry setting) and ensure the patch is for the correct version. If it is, it will then make the necessary changes. It doesn't sound like this would be too difficult to implement on my own, but I was wondering if other people had already done this. I'm using NSIS as my installer if that makes any difference.

Thanks,

Jeff


Source: (StackOverflow)

Are Java 6's performance improvements in the JDK, JVM, or both?

I've been wondering about the performance improvements touted in Java SE 6 - is it in the compiler or the runtime? Put another way, would a Java 5 application compiled by JDK 6 see an improvement run under JSE 5 (indicating improved compiler optimization)? Would a Java 5 application compiled by JDK 5 see an improvement run under JSE 6 (indicating improved runtime optimization)?

I've noticed that compiling under JDK 6 takes almost twice as long as it did under JDK 5 for the exact same codebase; I'm hoping that at least some of that extra time is being spent on compiler optimizations, hopefully leading to more performant JARs and WARs. Sun's JDK info doesn't really go into detail on the performance improvements they've made - I assume it's a little from column A, and a little from column B, but I wonder which is the greater influence. Does anyone know of any benchmarks done on JDK 6 vs. JDK 5?


Source: (StackOverflow)

How does .NET/COM work with multiple versions registered via Regasm?

I have a .NET DLL (that happens to be written in C++/CLI). Parts of it I want to expose via COM. I do this and register it using "regasm my.dll /codebase". So far so good. But then I change some things and the version number of the assembly changes plus I move the dll to a different folder. I register it again and look at my COM object in OLE/COM Viewer. I see something like this

InprocServer32 [Codebase] = file://c://foo/bar/my.dll
7.0.0.0 [Class] = My.Blah.Class
7.0.0.0 [Assembly] = Sync, Version=7.0.0.0, Culture=neutral, PublicKeyToken=1dd19234234
7.0.0.0 [RuntimeVersion] = v2.0.50727
7.0.0.0 [CodeBase] = file://c:/dooby/do/my.dll
7.0.0.27397 [Class] = My.Blah.Class
7.0.0.27397 [Assembly] = Sync, Version=7.0.0.27397, Culture=neutral, PublicKeyToken=1dd19234234
7.0.0.27397 [RuntimeVersion] = v2.0.50727
7.0.0.27397 [CodeBase] = file://c://foo/bar/my.dll

Questions about multiple versions:

  1. So I think that the last COM object that was registered wins. It doesn't matter if I have my old 7.0.0.0 COM object registered, the 7.0.0.27397 is the one that will be created when I instantiate my COM object because I registered it last. Is that correct?

  2. Oops I didn't keep around the 7.0.0.0 object. Is there any way to get rid of it? Is there any way to remove all versions of a COM object other than going into the registry and whacking it by hand?

  3. Just out of curiosity, if I specifically wanted to instantiate a particular version of my COM object is there any way to do that? (I'm using C++ if you wanted to give a code example).

  4. Is there any way I can just tell regasm to not store the version number because it just seems to be cluttering things up and I can't see what the benefit is. If my COM object went through significant API change I'd just change the GUID and progid, right? What if I don't want to register multiple versions (I don't).


Source: (StackOverflow)

Shoebox / Library applications with Auto-Save & Versions in OS X Lion

We have a shoebox-style application that we want to make a first-class citizen in Lion. This means integrating Auto-Save & Versions among other things. Currently we don’t have a document-centric model and we just use a plain Core Data stack.

UIPersistentDocument provides a really easy way to integrate both Auto-Save & Versions and I see two options we could choose from to integrate with the new APIs:

  1. “Abuse” NSPersistentDocument for our shoebox-style application. Technically it would be a document-based application, but the user interface would still be the same iPhoto-like library. This makes conceptually not a lot of sense, but we would get a lot of functionality for free.
  2. Keep the current plain Core Data stack and implement Auto-Save & Versions manually.

I heard contradicting opinions from Apple representatives about the approach we should take and it would be great to clarify things before we start our implementation. While I think that 1. shouldn’t be used it’s also very tempting, because we get a lot for free. I couldn’t even find sufficient documentation on manually implementing Auto-Save & Versions in a Core Data application.

I would really tend to use 1. but I see some problems:

  • I’m worried about file-system-level conflicts when using versions and only one database-file. I couldn’t find any documentation regarding this topic.
  • I’m worried about performance issues in Versions when browsing through “space”.
  • We can’t enforce only one instance of the open database, since Versions has to open several instances. I’m worried about side-effects and concurrency issues. Conceptually it looks like a hack and I don’t like hacks.

If we would only want to integrate iCloud sync I definitely wouldn’t think about using a document-centric model for our application, because Core Data supports it directly. I’m mostly worried about the developer overhead we would have if we would stick to our current non-document based paradigm.

Do you have any advice or ideas how shoebox applications should be integrated in the new Lion world?


Source: (StackOverflow)

Stability of .NET serialization across different framework versions

A project I'm working on requires serializing a data structure before shutting down and restores its state from this serialized data when it start up again.

Last year, we were building for .NET 1.1, and ran into a tricky issue where

  • our code ran on .NET 2.0
  • a customer upgraded with some software that somehow set 1.1 as default
  • our code ran on .NET 1.1 and was unable to deserialize its stored state

This particular issue was "resolved" by barring that particular software upgrade, and shouldn't be a problem now that we're targeting the .NET 2.0 framework (so we can't possibly run on 1.1).

What is the chance that this serialization could again change incompatibly between, 2.0 and newer frameworks? If we use <supportedVersion> to fix our code to 2.0.50727, what are the chances of changes between 2.0.50727.1434 and 2.0.50727.nnnn (some future release)? The data structures being serialized are arrays, maps, strings, et cetera from the standard class libraries.

Additionally, is it guaranteed that a 2.0.50727 framework will be always installed even after further .NET upgrades? Pointers to Microsoft documentation welcome.


Source: (StackOverflow)

Running software built for .NET 3.5 on a system with only .NET 2.0 installed

How far along does software compiled for .NET 3.5 get before crashing on a system that only has .NET 2.0 installed?

The application I am developing uses WPF and requires .NET 3.5, but I would like to display a user-friendly dialog (rather than crashing) if the user does not have it installed.

Are there any standard ways to do this, or official Microsoft documentation on it?


EDIT: In an ideal world I'd just check that any .NET dependencies are satisfied during installation. Since some applications do not have installers and since users could potentially uninstall .NET after the application is installed, I find the answers below to be useful.


Source: (StackOverflow)

Maven "versions" plugin - how to exclude alpha/beta versions from reponse?

I have an issue concerning the plugin versions.

When it generates a report with the goal:

mvn versions:display-dependency-updates

It suggest is a lot of libraries that with beta or alpha versions.

 org.hibernate:hibernate-validator ......... 4.2.0.Final -> 4.3.0.Beta1

The issue is that event if the goal of this plugin is to show the very latest versions of each dependency, I don't want to use beta/alpha versions for production code. But I don't want to search manually the last stable version neither.

I've tried the 'comparisonMethod' option: numeric, maven, etc. No success whatsoever.

Any ideas for the plugin 'versions' to show the latests available versions of dependencies, but without including beta/alpha?


Source: (StackOverflow)

Switching trial and pro builds with android apps in Eclipse: how to make it less painful?

I have an application for Android which comes in two forms: a trial version and a paid "pro" version. The two versions coexists in Android Market and have different package names (let's call them com.app.trial and com.app.pro). They share the same codebase. When I have to switch between trial and pro builds in Eclispe, I have to spend no less than 20 minutes each time editing the code to make it build the correct version. My procedure looks like this:

  1. Rename package name in AndroidManifest.xml (also rename app versionName, and versionCode).

  2. Click on main package name "com.app.pro" (if pro was the lastest build and now I want to make a trial build) and select Refactor->Rename (check 'Update references' and 'Rename subpackages') and let Eclipse do the renaming.

  3. After this comes the hard part: in my code many files still import the "old" package name, "com.app.pro" instead of being automatically changed to "com.app.trial". In some cases Eclipse adds those references during the renaming, for no apparent reasons (there are no references to this specific package from within a given Java file). I have to manually edit all the instances.

My question is:

How do I make this procedure less time consuming? I also have been using NetBeans where there's a handy support for #ifdefs (aka Abilities) which really makes switching between builds a breeze. Eclipse unfortunately has no support (at least no buil-in support) for #ifdefs.

Any suggestions would be greatly appreciated.

P.S. For the reference I am using Eclipse Ganymede version 3.4.2 but also tried a newer version, it does the same.


Source: (StackOverflow)