Posts

Installing Firebase Tools

Required steps to install Firebase Tools are described here: https://firebase.google.com/docs/cli/ Notes to installation: 1) Installing nvm for Windows 7 Professional - 64x: After installation running nvm command from command line shows error: cannot open settings.txt This is a bug described here: https://github.com/coreybutler/nvm-windows/issues/22 One of suggested solutions was working for me: Simply remove NVM_HOME and NVM_SYMLINK from the user environment variables.

Printing Hibernate generated SQL statements

In logging file (log4j2.xml) enable hibernate loggers: <Logger name="log4j.logger.org.hibernate.SQL" level="debug" /> <Logger name="log4j.logger.org.hibernate.type.descriptor.sql" level="trace" /> In persistence.xml turn on printing and formatting SQL statments: <property name="hibernate.show_sql" value="true" /> <property name="hibernate.use_sql_comments" value="true" /> <property name="hibernate.format_sql" value="true" />

MySQL dump on remote host

Backup remove MySQL database to local file can be done with a simple interactive command that asks you for password in following step: mysqldump -P [portnumber] -h [host] -u [user] -p [databasename] > C:\data\my.sql

Maven release proces

Using maven release plugin from command line is fast end efficient - 2 steps are needed: first prepare release, than perform release. mvn release:prepare -Darguments="-DskipTests" mvn release:perform -Darguments="-Dmaven.javadoc.skip=true -DskipTests"

MyBatis calling Oracle stored procedures

Lesson learned today: Use MyBatis update statement for calling Oracle stored procedures with input and output parameters. Fragment of my MyBatis mapper xml file before: <select id="getPasswordVerificationStatus" statementType="CALLABLE" parameterType="getPasswordVerificationStatus"> {call WEB.IFC_CORE.GETUSERPASSWORDSTATUS( #{idEmp,mode=IN}, #{login,mode=IN}, #{password,mode=IN}, #{expiry,jdbcType=INTEGER,mode=OUT}, #{expiryCode,jdbcType=INTEGER,mode=OUT})} </select> I've tried to implement a stored procedure call (using Oracle jdbc driver and Oracle Universal Connection Pool in background), taking an inspiration from some working examples . According the Ibatis / myBatis migration guide we can use select, update or insert when calling stored procedure . Since my procedure only asked for a status and didn't insert or modify any data I expected a select element to be the appropriate one to use. Caused b

Upload files to application drive account via Picker API

Google Picker API enables to pick files from Google Drive account or upload files to Google Drive account. With few lines of javascript code one can create sofisticated file upload UI. How to include Google Picker <script src="http://www.google.com/jsapi></script> google.setOnLoadCallback(createPicker); google.load('picker', '1'); /** Create picker object. */ function createPicker() { // Use DocsUploadView to upload documents to Google Drive. var uploadView = new google.picker.DocsUploadView(); var picker = new google.picker.PickerBuilder(). addView(uploadView). setAppId("xxxxxxxxxxxxxxxxxx"). // setOAuthToken(ACCESS_TOKEN). setCallback(pickerCallback). build(); picker.setVisible(true); } /** A simple callback implementation. */ function pickerCallback(data) { if (data.action == google.picker.Action.PICKED) { var fileId = data.docs[0].id; alert('The user selecte

Access application Google Drive account from javascript without client side authorization dialog

Use case We want to create a regular Google Drive account owned by an application. The application enables users to upload or view files within that account. Since Google Drive API provides javascript library the goal is to use javascript for all the logic (upload and view files) with minimum engagement of server side processing. For the purpose of creating an application owned account Google provides two options: SERVICE ACCOUNT Application is authorized by .pk12 certificate; the drawback is that only the application can see documents it created - documents cannot be viewed for example through Google Drive UI. REGULAR GOOGLE ACCOUNT used by the application only This option is our choice because we want to access stored files using Google Drive UI too. More information about the two options is available in Google Drive SDK documentation . To access a Google account using Google API we have to ensure correct handling of authentication and authorization procedures - Google A

Hibernate schema export with Hibernate Validator constraints accepted and Spring configured persistence

What is the goal: using Spring Framework for configuration of persistence settings (JPA 2.0 with Hibernate provider) using the configuration for Hibernate schema export tool apply Hibernate Validator constraints to generated schema Spring persistence configuration // define datasource - hsqldb for testing purposes - it requires hsqldb to be on classpath EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); EmbeddedDatabase database = builder.setType(EmbeddedDatabaseType.HSQL).build(); // standard way how to configure persistence in Spring (usually included as a part of some configuration class) LocalContainerEntityManagerFactoryBean lcemfb = new LocalContainerEntityManagerFactoryBean(); lcemfb.setPersistenceXmlLocation("classpath:example/path/to/persistence.xml"); lcemfb.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); lcemfb.setDataSource(database); lcemfb.afterPropertiesSet(); Create Hibernate configuration from Spring configured persistence Ej

Hibernate delete and update queries with joins

From Hibernate 4.1.9 manual - section about bulk update and deletes : No implicit or explicit joins can be specified in a bulk HQL query. Sub-queries can be used in the where-clause, where the subqueries themselves may contain joins. Unsupported (implicit join) DELETE A a WHERE a.relation.property = "dummy"; A way to go DELETE A a WHERE a.relation.id IN (SELECT r.id FROM Relation r WHERE r.property = "dummy");

JQuery - window offset right

Script that counts right offset of an element in a window. Taken from: stackoverflow.com answers var $whatever = $('#whatever'); var offset_right = ($(window).width() - ($whatever.offset().left + $whatever.outerWidth()))

How to set width of a table within Twitter Bootstrap

All tables within the bootstrap stretch according to their container, which you can easily do by placing your table inside a .span* grid element of your choice. If you wish to remove this property you can create your own table class and simply add it to the table you want to expand with the content within: .table-nonfluid { width: auto; } Taken from: stackoverflow answers .

MySQL database size script

Useful scripts that count MySQL database size or individual tables sizes (taken from: http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/ ):  Database size: SELECT table_schema "Data Base Name", SUM( data_length + index_length) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema; Individual tables sizes: SELECT TABLE_NAME, table_rows, data_length, index_length, round(((data_length + index_length) / 1024 / 1024),2) "Size in MB" FROM information_schema.TABLES WHERE table_schema = "schema_name";

AppFog: download log files

To download a log file from AppFog use simple command: af files appname [app/relative/log/path/on/server] > [path/to/local/file] af commands are described in detail here: https://docs.appfog.com/getting-started/af-cli

Selenium, Basic authentication a Firefox

Při testování webu s využitím Selenium testů (konkrétně java junit testy - Selenium 2.0 a web driver) jsem řešila, jak automaticky provést autentizaci uživatele pomocí Basic Authentication. Tato funkcionalita není totiž podporována napříč jednotlivými typy selenium driverů. Existují různé workaround(-y), řada z nich je popsána v rámci selenium issue tracker(-u) . Zkoušela jsem prozatím jeden přístup a funguje - postup: Testované URL je ve tvaru: http://username:password@www.someweb.cz Při testování jsme omezeni na použití FirefoxDriver (jeden z typů selenium web driverů) Ve firefoxu vytvořit profil , který bude sloužit pro testovací účely Spustit firefox s nově založeným profilem a přejít na stránku about:config Zadat novou "property": na volném místě kliknout pravým a zvolit New -> Integer Nová property bude mít název a hodnotu: network.http.phishy-userpass-length=255 Poznámka: nastavení property network.http.phishy-userpass-length je nutné kvůli tomu, aby se nezobrazova

Google App Engine, Maven, Eclipse

Image
Google App Engine je jedna z průkopnických služeb typu PaaS (Platform as Service), která umožňuje s určitými omezeními běh webových java aplikací. Pro Eclipse existuje Google Eclipse Plugin - usnadňuje tvorbu aplikace určené pro Google App Engine, včetně běhu lokálního testovacího serveru, deploy na Google App Engine, ... Pro správu knihoven na svých projektech využívám užitečný nástroj: Maven - no a nutno říct, že pohodlí, které přináší, jsem se nechtěla vzdát ani při tvorbě aplikace pro Google App Engine v prostředí Eclipse a s využitím Google Eclipse Pluginu. Takže úkol číslo jedna: rozchodit Maven a Google App Engine v Eclipse. Rozhodně to nebylo zcela přímočaré, ale jakžtakž mi to funguje, takže tady je návod - snad se bude někomu hodit (dokumentace jsem opravdu moc nenašla): 1. Předpoklady: [a] Eclipse IDE for Java EE Developers (tedy především podpora WTP - Web Tool Platform) [b] Nainstalovaný m2eclipse plugin (včetně extensions - m2eclipse extras!) - návod zde: http://m2eclips

Hibernate Static Metamodel Generator Annotation Processor v Eclipse

Image
Hibernate nabízí processor pro generování metamodelu entit, který je potřeba, chceme-li v rámci specifikace JPA 2.0 používat novinku tvz. type-safe Criteria API. Způsobů, jak spustit processor je více - dají se použít nástroje jako je ant nebo maven, ale lze také využít přímo IDE - takže konkrétně jak na to v Eclipse: 1. Project -> Properties -> Java Compiler -> Annotation processing 2. Project -> Properties -> Java Compiler -> Annotation processing -> Factory path Zde je třeba přidat potřebné knihovny (.jar): a) hibernate metamodel generator b) jpa 2.0

MySQL 5.1 na Windows XP

Pro své webové aplikace většinou používám jako databázi MySQL - jen pro testovací účely a vývoj, jinak se v administraci databáze nějak extra nevyznám. I když jsem databázi MySQL u sebe instalovala už minimálně 5x, tentokrát se mi to prostě pomocí Windows instalátoru nepodařilo ani na třetí pokus - pořád stejná chyba při pokusu konfiguračního průvodce o spuštění MySQL jako služby Windows: " Could not start the service MySQL. Error:0 " Po přečtení pár příspěvků na internetu, kdo to, jak řešil a důkladném pročtení manuálu a posledním pokusu o úspěšnou instalaci, jsem se rozhodla vyzkoušet binární (neinstalační) verzi, tu je ale potřeba ručně nakonfigurovat, ... vzhledem k tomu, že se mi to podařilo podle MySQL manuálu úplně bez problémů, tady je postup (možností je samozřejmě více). Píšu postup hlavně pro sebe, abych ho nezapomněla, ale třeba se bude hodit i někomu dalšímu. 1. Stáhnout verzi mysql 5.1.x pro Windows "Without installer" 2. Rozbalit archiv do D:\bin-prog

Jak zkopírovat knihovny z jedné instalace Netbeans do jiné

Zrovna dnes jsem se pustila do instalace nové verze Netbeans IDE 6.7. Vzhledem k tomu, že se mi nechtělo importovat a vytvářet vlastní knihovny, které jsem měla v přechozí verzi, znovu, brouzdala jsem trochu po internetu a hledala, jak na to ... a celkem jednoduché ;-) Stačí zkopírovat: -user-\.netbeans\6.5\config\org-netbeans-api-project-libraries\Libraries do -user-\.netbeans\6.7\config\org-netbeans-api-project-libraries kde -user- je cesta k vašemu domovskému adresáři. Tedy u mě např. C:\Documents and Settings\pavla