2015-06-20
Google App Engine + Scala with Jersey + ScalaJs
Have been interested in ScalaJs for a while and wanted to use it and Scala with Jersey in Google App Engine. This is a first try to combine them.
2015-02-05
Auth0 + Google App Engine (Java) = "Running on GAE? Fine. No cookie support for you!"
Had some troubles implementing Auth0 Java example code to Google App Engine since ...
https://github.com/AIMMOTH/GAEAuth0Callback
W2015-02-05 20:25:28.236
[s~workaround-town/1.382027755131049112].<stderr>: No CookieHandler. Running on GAE? Fine. No cookie support for you!W2015-02-05 20:25:28.239
Error for /auth0-callback/ java.lang.ExceptionInInitializerError at com.auth0.Auth0ServletCallback.createResty(Auth0ServletCallback.java:168) at com.auth0.Auth0ServletCallback.fetchTokens(Auth0ServletCallback.java:109) at com.auth0.Auth0ServletCallback.doGet(Auth0ServletCallback.java:73) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at se.ce.workaround.WorkaroundFilter.doHttpFilter(WorkaroundFilter.java:145) at se.ce.util.web.singlepage.DefaultFilter.doFilter(DefaultFilter.java:38) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:58) at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:254) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146) at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:484) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:438) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:445) at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:220) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:309) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:301) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:442) at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) at java.lang.Thread.run(Thread.java:724) Caused by: java.security.AccessControlException: access denied ("java.net.NetPermission" "setDefaultAuthenticator") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:375) at java.security.AccessController.checkPermission(AccessController.java:565) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:56) at java.net.Authenticator.setDefault(Authenticator.java:127) at us.monoid.web.Resty.<clinit>(Resty.java:94) ... 43 moreW2015-02-05 20:25:28.241
Nested in java.lang.ExceptionInInitializerError: java.security.AccessControlException: access denied ("java.net.NetPermission" "setDefaultAuthenticator") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:375) at java.security.AccessController.checkPermission(AccessController.java:565) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:56) at java.net.Authenticator.setDefault(Authenticator.java:127) at us.monoid.web.Resty.<clinit>(Resty.java:94) at com.auth0.Auth0ServletCallback.createResty(Auth0ServletCallback.java:168) at com.auth0.Auth0ServletCallback.fetchTokens(Auth0ServletCallback.java:109) at com.auth0.Auth0ServletCallback.doGet(Auth0ServletCallback.java:73) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at se.ce.workaround.WorkaroundFilter.doHttpFilter(WorkaroundFilter.java:145) at se.ce.util.web.singlepage.DefaultFilter.doFilter(DefaultFilter.java:38) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:58) at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:254) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146) at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:484) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:438) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:445) at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:220) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:309) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:301) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:442) at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) at java.lang.Thread.run(Thread.java:724)C2015-02-05 20:25:28.244
Uncaught exception from servlet java.lang.ExceptionInInitializerError at com.auth0.Auth0ServletCallback.createResty(Auth0ServletCallback.java:168) at com.auth0.Auth0ServletCallback.fetchTokens(Auth0ServletCallback.java:109) at com.auth0.Auth0ServletCallback.doGet(Auth0ServletCallback.java:73) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at se.ce.workaround.WorkaroundFilter.doHttpFilter(WorkaroundFilter.java:145) at se.ce.util.web.singlepage.DefaultFilter.doFilter(DefaultFilter.java:38) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:58) at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:254) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146) at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:484) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:438) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:445) at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:220) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:309) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:301) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:442) at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) at java.lang.Thread.run(Thread.java:724) Caused by: java.security.AccessControlException: access denied ("java.net.NetPermission" "setDefaultAuthenticator") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:375) at java.security.AccessController.checkPermission(AccessController.java:565) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:56) at java.net.Authenticator.setDefault(Authenticator.java:127) at us.monoid.web.Resty.<clinit>(Resty.java:94) ... 43 more
https://github.com/AIMMOTH/GAEAuth0Callback
Etiketter:
app engine,
auth0,
authorization,
code,
error,
exception,
google,
java,
jvm,
login,
stacktrace
2015-02-03
Google App Engine Deploy Error
Ran into a very confusion error when deploying a new app to App Engine.
------------ Deploying frontend ------------
Preparing to deploy:
Created staging directory at: 'C:\Users\Carl\AppData\Local\Temp\appcfg8392684210541476644.tmp'
Scanning for jsp files.
Scanning files on local disk.
Initiating update.
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=git-app&version=1&
400 Bad Request
Error when loading application configuration:Unable to assign value 'email' to attribute 'url':Value 'email' for url does not match expression '^(?:(?!\^)/.*|\..*|(\(.).*(?!\$).)$'
Debugging information may be found in C:\Users\Carl\AppData\Local\Temp\appengine-deploy1202454373832605151.log
Full stacktrace:
Unable to update:
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=git-app&version=1&
400 Bad Request
Error when loading application configuration:Unable to assign value 'email' to attribute 'url':Value 'email' for url does not match expression '^(?:(?!\^)/.*|\..*|(\(.).*(?!\$).)$'
at com.google.appengine.tools.admin.AbstractServerConnection.send1(AbstractServerConnection.java:303)
at com.google.appengine.tools.admin.AbstractServerConnection.send(AbstractServerConnection.java:254)
at com.google.appengine.tools.admin.AbstractServerConnection.post(AbstractServerConnection.java:233)
at com.google.appengine.tools.admin.LoggingClientDeploySender.send(LoggingClientDeploySender.java:47)
at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:1100)
at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:735)
at com.google.appengine.tools.admin.AppVersionUpload.uploadFilesTransaction(AppVersionUpload.java:174)
at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:151)
at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:474)
at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:55)
at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433)
at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:158)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
------------ Deploying frontend ------------
Preparing to deploy:
Created staging directory at: 'C:\Users\Carl\AppData\Local\Temp\appcfg8392684210541476644.tmp'
Scanning for jsp files.
Scanning files on local disk.
Initiating update.
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=git-app&version=1&
400 Bad Request
Error when loading application configuration:Unable to assign value 'email' to attribute 'url':Value 'email' for url does not match expression '^(?:(?!\^)/.*|\..*|(\(.).*(?!\$).)$'
Debugging information may be found in C:\Users\Carl\AppData\Local\Temp\appengine-deploy1202454373832605151.log
<url-pattern>/email</url-pattern>By chance I found that a servlet url-pattern didn't start with slash.
Full stacktrace:
Unable to update:
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=git-app&version=1&
400 Bad Request
Error when loading application configuration:Unable to assign value 'email' to attribute 'url':Value 'email' for url does not match expression '^(?:(?!\^)/.*|\..*|(\(.).*(?!\$).)$'
at com.google.appengine.tools.admin.AbstractServerConnection.send1(AbstractServerConnection.java:303)
at com.google.appengine.tools.admin.AbstractServerConnection.send(AbstractServerConnection.java:254)
at com.google.appengine.tools.admin.AbstractServerConnection.post(AbstractServerConnection.java:233)
at com.google.appengine.tools.admin.LoggingClientDeploySender.send(LoggingClientDeploySender.java:47)
at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:1100)
at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:735)
at com.google.appengine.tools.admin.AppVersionUpload.uploadFilesTransaction(AppVersionUpload.java:174)
at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:151)
at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:474)
at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:55)
at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433)
at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:158)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
2014-11-06
Tjänsteledighetsbloggen 2014-11-06
Workaround Town
Körde ett riktigt race och kodade på. Igår kväll satt jag med Rikard och gjorde en ny design som jag laddade upp. Sen fixade jag en adminsida där det går att ladda upp bilder och få optimerade länkar samt ladda upp översättningar.
Ny design
Här är en bild på den nya designen. En ordentlig uppfräschning med lite mindre komponenter.
2014-10-31
Tjänsteledighetsdagboken 2014-10-23
Utvilad
Idag vaknade jag upp utvilad, jätteskönt! Har haft lite ont i halsen sedan helgen och aningen kraftlös, så det är skönt att få tillbaka krafterna.
Dagens problem
Mitt i formuläret vill jag ha ett annat formulär för att ladda upp bilder.
Notiser
Vision, skygglapp, ägde i bf3, snack med grabbarna, ok layout för mobiler, slappt, gick inte ut idag,potatisgratäng och viltstek!
2014-10-31: Anmärker bara vad som menas med vision och skygglapp. Det första är mitt sätt att programmera. Jag tar in problemet, grubblar i lugn och ro för att se en vision om lösning. Det andra är att det antagligen krävs skygglappar för att genomföra stora projekt. Det är helt enkelt för mycket som kan gå fel!
De två första veckorna på tjänstledigheten 2014-10-31
Två veckor har gått
Massor har genomförts. Förra veckan blev ett stim av kodning och eftersom det var min första vecka firade jag med en utgång.
Från början hade jag någon ambition att skriva dagligen, men det visade sig för jobbigt och det känns bättre att skriva nu i efterhand när många problem har lösts.
Resultat
Vecka 1
Jag jobbar med två projekt.
- Workaround Town, som ska vara en förmedling av lokaler likt Air BnB, var i sin linda och jag gjorde ett mobilanpassat formulär för att skapa annonser. Lyckades också ladda upp bilder via XmlHttpRequest och skapa ett galleri med hjälp av Foundation.
- Black Box Date, är mitt personliga projekt som jag la tid på under helgen. Där arbetade jag med profilsidan mest och la in JQuery UI slider med två värden för att kunna välja ett urval av värden.
Vecka 2
Jobbade endast med Workaround Town och vi kom till slut om namnet! Detta ledde till att vi registrerade domäner och jag styrde om trafik och e-post. En mängd problem löstes denna vecka: optimera bilder, bildkarussell, multipel datumväljare, animera dragspelen (accordion), validera formulär med Abide mm.
Det viktigaste var nog att jag implementerade en preliminär design som Rikard hade skissat på. I och med att vi hade registrerat en domän fixade jag en landningssida med denna design samt intresseanmälan och frågeformulär. Det är väldigt bra eftersom vi nu kan hänvisa folk till sidan och faktiskt använda den vid intervjuer.
| Inte så snygg, men det kommer! www.workaroundtown.net |
Veckan är inte slut och i helgen ska jag fokusera på Black Box Date.
Problem
Många tunga problem har dykt upp och jag ska försöka skriva ner lösningarna i detalj.
- XmlHttpRequest-posta bild från HTML FILE INPUT och spara i Google App Engine
- Animera Foundations dragspel när varje klick drar ihop den
- Slick karusell i Foundation
- Optimera bilder som levereras från Google App Engine
- Validera formulär med Abide
Vardagen
Många dagar har varit toppen!
- Första måndagen avinstallerade jag till slut Battlefield 4 för att installera Battlefield 3, och vilket lyft! Har länge gett fyran ett försök men jag orkade inte längre. Det visade sig vara ett riktigt bra drag och jag hade en riktigt ägande omgång på Bandar desert. Klassiker.
- Första torsdagen vaknade jag upp helt utvilad och pigg!
- Denna söndag och måndag var skön eftersom jag fortfarande kände mig bakis vilket skulle leda till söndagsångest, men nu när jag välja helt själv vad jag skulle göra på måndagen och inte behöva gå till jobbet kändes allt mycket bättre!
Annars har dagarna varit lugna med tidig uppgång runt åtta, sedan träna vid 10 med lunch efteråt. Sedan kodat på till fyra cirka för en paus. Sen har det varit lite olika med kodning, middag och kodning in på kvällen är inte ovanligt. Annars gått ut och gjort något socialt.
2014-10-20
Tjänsteledighetsdagboken 2014-10-20
Bakgrund
Eftersom jag nu är på tjänsteledighet och kommer att koda helt på egen hand utan deadlines, planering eller någon chef så kan det vara bra att skriva lite om vad som händer.Tidiga tankar
Redan innan min tjänsteledighet täntke jag på att skriva ner mit arbete när det gäller projekt. Det är något jag ofta tänker på men aldrig haft någon övergripande syn på. Det går upp och ner och på något sätt går det runt. Om jag lyckas skriva ner mitt arbete så kanske det går att se hur jag faktiskt lyckas.Utvecklarkommentarer
En annan anledning till att skriva dagbok skulle vara att ta upp olika problem som dagligen dyker upp. Med alla olika teknologier så uppstår det jämnt något. Det är ändå med Google App Engine, Maven, Eclipse, Java, JavaScript, CSS, HTML och Objectify jag jobbar med!Musik
Dagens musik: Devo, Switched on Bach, slumpat från Acid Flash albumen och Alien Rain.
Prenumerera på:
Inlägg (Atom)