Tuesday, July 7, 2015

Retromania - Novo portal de "retro gaming"


Retromania é um novo portal português onde serão divulgadas as notícias mais revelantes do mundo do "retro gaming" e "retro computing" em português. Spectrums, Commodores, Ataris, Nintendos, Segas... está tudo lá:


http://www.retromania.pt



Neste site, existe ainda um fórum onde os mais aficionados podem trocar ideias, ajudar ou ser ajudado, partilhar novidades, etc:


http://www.retromania.pt/forum




Sunday, June 14, 2015

Android game: Up Up n' Roll Away

We just released a new game for android: Up Up n' Roll Away.


It's is a "minimalist" game where you can test your precision skills.
Power up the ball, release in the right moment and you will get to the next platform.
The sky is the limit.
... be the ball...

Download link (from Google Play):
https://play.google.com/store/apps/details?id=com.BubbleBoy.UpUpRollAway

Here's how the game looks:

 


Friday, May 22, 2015

Drill & Drill Co.

We, at Bubble Boy, just released a new game for Android smartphones:


Your mission: to drill into the deepest layers of the Earth. How deep can you go?

Download link (from Google Play):
https://play.google.com/store/apps/details?id=com.BubbleBoy.Drilldrillco

Wednesday, April 22, 2015

Aventura das Palavras

Já conhecem a "Aventura das Palavras"?

A Aventura das Palavras é uma aplicação (app, se preferirem) para dispositivos android, feita por mim e pelo meu compincha João Caleia Rodrigues. É uma app pedagógica/didáctica/educativa para crianças entre os 6 e os 10 anos treinarem a leitura.

É esta a descrição que consta na Play Store:

A "Aventura das Palavras" ajuda as crianças a treinar, de forma divertida, as competências implicadas na leitura, como a correspondência grafo-fonética (correspondência letra-som), fusão fonética e fusão silábica, trabalhando vários tipos de sílabas (das mais fáceis às mais difíceis) e os casos especiais da Língua Portuguesa.
Façam download, avaliem a aplicação, façam reviews. Façam-nos ricos com esta aplicação... totalmente gratuita.







Link para download: https://play.google.com/store/apps/details?id=com.bubbleboy

Nota: No momento de edição deste post, a Aventura das Palavras encontra-se na lista "trending apps" na Play Store portuguesa:



Saturday, June 1, 2013

OBIEE: MDS or BIPLATFORM password invalid

I recently had this problem with a development server. I had to restart the BI services and they just wouldn't come back to life.

Looking at the Log files in the Enterprise Manager I found this error message:

oracle.mds.lcm.exception.MDSLCMException: MDS-01330: unable to load MDS configuration document    
MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "MAR_TargetRepos" is invalid.    
MDS-01376: Unable to get database connection from data source "mds-owsm" configured with JNDI name "jdbc/mds/owsm".     
weblogic.common.resourcepool.ResourceDeadException: 0:
 Could not connect to 'oracle.jdbc.OracleDriver'.

 The returned message is: ORA-01017: invalid username/password; logon denied

 It is likely that the login or password is not valid.
 It is also possible that something else is invalid in
 the configuration or that the database is not available.

at oracle.mds.internal.lcm.deploy.DeployManager.deploy(DeployManager.java:733)
at oracle.mds.internal.lcm.deploy.DeployManager.startDeployment(DeployManager.java:204)
at oracle.mds.internal.lcm.MDSLifecycleListenerImpl.start(MDSLifecycleListenerImpl.java:215)
at oracle.mds.lcm.weblogic.WLLifecycleListener.preStart(WLLifecycleListener.java:77)
at weblogic.application.internal.flow.BaseLifecycleFlow$PreStartAction.run(BaseLifecycleFlow.java:282)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.application.internal.flow.BaseLifecycleFlow$LifecycleListenerAction.invoke(BaseLifecycleFlow.java:199)
at weblogic.application.internal.flow.BaseLifecycleFlow.preStart(BaseLifecycleFlow.java:62)
at weblogic.application.internal.flow.HeadLifecycleFlow.prepare(HeadLifecycleFlow.java:283)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:613)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:184)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:58)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
at weblogic.deploy.internal.targetserver.operations.StartOperation.createAndPrepareContainer(StartOperation.java:85)
at weblogic.deploy.internal.targetserver.operations.StartOperation.doPrepare(StartOperation.java:98)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: oracle.mds.config.MDSConfigurationException: MDS-01330: unable to load MDS configuration document    
MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "MAR_TargetRepos" is invalid.    
MDS-01376: Unable to get database connection from data source "mds-owsm" configured with JNDI name "jdbc/mds/owsm".     
weblogic.common.resourcepool.ResourceDeadException: 0:
 Could not connect to 'oracle.jdbc.OracleDriver'.

 The returned message is: ORA-01017: invalid username/password; logon denied

 It is likely that the login or password is not valid.
 It is also possible that something else is invalid in
 the configuration or that the database is not available.

at oracle.mds.config.PConfig.loadFromBean(PConfig.java:959)
at oracle.mds.config.PConfig.(PConfig.java:758)
at oracle.mds.config.MDSConfig.loadFromBean(MDSConfig.java:787)
at oracle.mds.config.MDSConfig.loadFromElement(MDSConfig.java:848)
at oracle.mds.config.MDSConfig.(MDSConfig.java:491)
at oracle.mds.config.MDSConfig.(MDSConfig.java:438)
at oracle.mds.internal.lcm.deploy.DeployManager.deploy(DeployManager.java:516)
... 29 more
Caused by: oracle.mds.exception.MDSExceptionList: MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "MAR_TargetRepos" is invalid.    
MDS-01376: Unable to get database connection from data source "mds-owsm" configured with JNDI name "jdbc/mds/owsm".     
weblogic.common.resourcepool.ResourceDeadException: 0:
 Could not connect to 'oracle.jdbc.OracleDriver'.

 The returned message is: ORA-01017: invalid username/password; logon denied

 It is likely that the login or password is not valid.
 It is also possible that something else is invalid in
 the configuration or that the database is not available.

at oracle.mds.config.PConfig.loadFromBean(PConfig.java:953)
... 35 more

So the relevant part here was "ORA-01017: invalid username/password; logon denied". This error meant that the server couldn't log in to my MDS database schema (that's one of the schemas you create when running the RCU as part of your OBIEE installation).

I ran the following query in my database (logged on with SYS account):

select * from dba_users where ACCOUNT_STATUS LIKE '%EXPIRED%' OR ACCOUNT_STATUS LIKE '%LOCK%' order by username;

It turned out that the schemas that the RCU created were setup to expire after six months after creation.

So, first step is to reset the password like this:

ALTER USER DEV_BIPLATFORM IDENTIFIED BY (yourpassword);
ALTER USER DEV_MDS IDENTIFIED BY (yourpassword);

DEV_BIPLATFORM and DEV_MDS are the names of my schemas. Just change the above SQL to you needs.

After that your schemas are still locked, so you need to unlock them:

ALTER USER DEV_BIPLATFORM ACCOUNT UNLOCK;
ALTER USER DEV_MDS ACCOUNT UNLOCK;

Finally, if you want your accounts to never expire ever again (that's ok for a development server, I guess), you might want to execute the following SQL:

alter profile DEFAULT limit password_life_time UNLIMITED;

If your passwords are exactly the same as they were before they expired, you can restart your services at this point.

But if you changed your password (like I did) you have to update the data sources in your server. To do that you have to login to your Fusion Middleware Control (enterprise manager) and:

To set the MDS password:
  1. On the menu on the left, expand "WebLogic Domain";
  2. Right-click "bifoundation_domain;
  3. On the pop-up menu select "JDBC Data Sources;
  4. Click "mds-owsm";
  5. Select the "Connection Pool" tab;
  6. Set the password and hit "Apply";
 To set the BIPLATFORM password:
  1. Expand "Business intelligence" menu on the left;
  2. Click the "Deployment" tab;
  3. Click the "Scheduler" tab under deployment;
  4. Click "Lock and Edit Configuration" button;
  5. Set the password and hit "Apply";
  6. Click the "Activate Changes" button;
After all these operations, restart your OBI services. Hopefully they will start. If they don't start, I suggest you restart your server.

Hope this helps.

Friday, May 31, 2013

ESXi 5: How to move a virtual machine to another datastore

Ok, I'm not the real author of this article but I'm posting it anyway just for reference. I just found this "trick" in the vmware forums (thanks to contributor Giznary):

http://communities.vmware.com/thread/184276?start=0&tstart=0

If you want to move a VM to another datastore in the same ESXi 5 server but don't want to mess with the command line just follow these steps:

  1. Power down the VM
  2. Use the datastore browser to browse to where it is stored
  3. Right-click> Move the entire folder to the desired datastore (presumably larger/faster/more free etc.)
  4. Once moved right-click the VM> Remove from inventory
  5. Use the datastore browser to go to the new storage location, navigate to the .vmx for the system. Right-click the .vmx> Add to inventory.
  6. The machine will show back up in the list of VMs, but with an exclamation.
  7. Click the VM, then the "Summary" tab. There will be a dialog that says something like "it looks like this system moved, did you move it or copy it or what?" with some radio buttons for Move/Copy/did not move. I chose "I moved it" each time and *walla* the system is moved from one datastore to another.
 Just make sure you have your backups up to date. You never know... ;)

Thursday, May 16, 2013

Firefox OS - first visit

Last month, my blog had the first visitor using Firefox OS. Curiously the number of FF OS was on par with Android visitors, which is very weird:

If you don't know what in the world is this browser named OS, you might want to take a look at:
http://www.mozilla.org/en-US/firefox/partners/

Monday, April 29, 2013

A new blog


 There's a new blog about Business Intelligence in the Interwebs. I shall contribute with some of my experience in there:

http://biatlink.wordpress.com/



Please feel free to post your comments.

Cheers.

Thursday, March 14, 2013

Wordpress: Edit Menu permissions

If you search online on how to allow a user to user to edit a navigation menu (Appearance -> Menus option in the backoffice) you'll find that you have to give that user's role the 'edit_theme_options' capability.

Now, I found the hard way that that is not enough. Your user's role will have to have the 'edit_posts' capability too (don't ask me why).

If you're a total noob here's what this roles and capabilities stuff is about:

A user belongs to a role -> A role has capabilities -> The capabilities determine what features are available to a user in that role.

You can modify or create user roles by using a very easy to use plugin called... wait for it... User Role Editor.