Opera on Linux is out!
The linux version of Opera running on the blink engine is now out.
Download
Product page
Blog post
Blink Project
PS Yes, I work for Opera, on the "discover" section :)
DEAR READER
Aqua Utopia|海の底で記憶を紡ぐ
tumblr dot com

roma★

ellievsbear
Keni
No title available
Cosmic Funnies
PUT YOUR BEARD IN MY MOUTH

No title available
cherry valley forever
trying on a metaphor
NASA

No title available
YOU ARE THE REASON
Peter Solarz

Love Begins

JBB: An Artblog!
h
Show & Tell

seen from United States

seen from United States
seen from Jordan
seen from Guatemala
seen from Jordan
seen from United States

seen from Jordan
seen from Brazil

seen from Iraq
seen from Jordan
seen from United States
seen from Jordan
seen from United States
seen from United States

seen from United States
seen from United States
seen from United States

seen from United States

seen from United States

seen from Malaysia
@thoughtsofaprogrammer-blog
Opera on Linux is out!
The linux version of Opera running on the blink engine is now out.
Download
Product page
Blog post
Blink Project
PS Yes, I work for Opera, on the "discover" section :)
Developing live on the Internet
by aenigmatis
A fun little representation of the perils of developing on a "live machine".
via of Cosimo.
Drinking a morning cup of coffee and reading about swift
History
I wrote my first (and only app) iOS app for the iphone in titantium. I went out of my way to avoid learning objective-c.
Thoughts so far:
Its a little like:
lua
javascript
python
go
I foresee it reducing the barrier to develop on the iOS platform for iphone or ipad greatly.
I can see this challenging cordova, titanium et al, due to the observation above.
What would happen if Apple provide some sort of integration for "swift -> java"? (I do see this as easier to do now.)
Devices
Being an owner of a few apple devices, I am a little sad to see that my outdated ipad, will not work with iOS8. However my semi broken iphone 4s will be able to work with iOS8 (I have a test device!)
Conclusion
So far, having written zero lines of code, I am already keen to write something in swift. It looks familiar and enticing. With iOS8 being penciled in for general roll out later in the year. I also have a deadline to make my second published iOS app.
I like the concept, but so far scanning the documents of Twitter Storm, needs more work to lower barrier to entry.
Disable vagrant checking for updates on your box
In your Vagrantfile, you will have a line that tells your system which box it is using.
config.vm.box = "BOX_GOES_HERE"
Everytime you write ****vagrant up**** it checks to see if there is an update for your box.
To disable add this on the next line:
config.vm.box = "BOX_GOES_HERE" config.vm.box_check_update = false
Reference
Automatic Update Checking (search for it on the page)
Vagrant on github
Using git to find a branch when you know the commit hash.
git branch --contains <commit-hash>
I have been a user of git for longer than 3 years now. Today, I discovered another little useful combination of commands and arguments to tackle a problem.
I wanted to be able to find which branch a commit hash was in. Turns out, I was not alone with this desire. If you want more info.
man git-branch
I am in the lottery for the Norseman 2013
##A story first I arrived in Norway to a little place outside of a small town in the west which is at the end of Fjord (Sauda), I was taken on a wonderful car trip to see some of "real Norway" and to have all the hills somebody had hiked up in the recent years, via Odda we followed the road on the east past the hills with apple trees, to the end of the road, where we waited to go on a "car ferry". My first "car ferry in Norway" crossing the [Hardangerfjord](http://en.wikipedia.org/wiki/Hardangerfjord). My driver of the car was a little excited to take us on this particular ferry, as a ferry captain he had driven it back and forth many times a previous year. That ferry, is the starting point for the Norseman. I love life for these serendipity moments. To think of jumping of that perfectly solid boat into the fjord... #I applied Seems a perfectly sensible thing to do, hence this is my second attempt to get into the [Norseman](http://nxtri.com) via the lottery. Today (saturday 3rd November) there are 272 days togo until the big day, roughly 39 weeks. This time next saturday, I will get one of two emails. One I have already seen, "the rejection". Or the one I have yet to see. "the welcome". Whatever happens, I will be documenting my journey in discovering new limits and new highs as I prepare myself for such an event. I have a piece of paper, written tonight which throws down the gauntlet, events I want to tick off and weeks till those events. 2013 is going to be a great year, I already know it. To push myself a little further, I dream (thus, I will do!) that some of my later posts will be dual written in English and Norwegian. "rejection" or "welcome", I will train for the [Norseman](http://nxtri.com) and I will prove to myself that I would successfully have finished this awesome event. ##Am I ready? No. ###Will people be surprised I applied? No. ##Will I get a black t-shirt? Yes. That is all.
Playing with d3 continues
A sneak peak via screenshots of what im exploring with d3. I will leave the images to explain what you are seeing. ##Word Cloud  ##Tree  Text came from: * [Fjellfolk Episode 1](http://tv.nrk.no/serie/fjellfolk/dksf46000211/sesong-1/episode-1) * [Subtitles](http://tv.nrk.no/programsubtitles/dksf46000511)
#Exploring d3.js with data from my runs to plot my heart rate Using [d3.js](https://github.com/mbostock/d3) some php skills and a *.tcx file (created via the Garmin site). I will document via [a github repo](https://github.com/freshteapot/my-heart-rate-by-d3) how I created something visual. In time the visual something will become more interesting, yet as my skills with d3 are very little. I will start small. At the end of each "learning" phase, I must have a new image to show for it. ##The first visual output  * Time is not displayed. * Starts at the lowest heart rate. * Plots to the highest. * Graph is based on amount of points, not time. Credit goes to [Ben J. Christensen](http://benjchristensen.com/2012/05/02/line-graphs-using-d3-js/), I used his [simple line graph](http://bl.ocks.org/2579599) and adapted it for my needs. * http://bl.ocks.org/2579599
Building Wordpoke - The Journey
#Wordpoke Welcome, this is an attempt to summarise the journey of building [Wordpoke (iTunes)](http://itunes.apple.com/us/app/wordpoke/id471756627?ls=1&mt=8). The following is what took wordpoke from an idea to a finished product. **At the start I could only work on Wordpoke for a few hours a day, after work. Knowing I had a few hours of computer time available, I would make notes around those hours and arrive knowing the task / goal / position I wanted to reach at the end of the day / hours. This lead to daily achievements and as soon as I could I made it so that each day the application must still function. If not, do not update the mobile.** --- The following sections exist. * Short version. * Long version. * Book version. I ramble in the Book version, yet I feel the above is the most exciting thing I learnt in the journey of making Wordoke. --- ##Short version * Today, 2 versions have been submitted. * iPhone app (first), iPad (second), same app. * Made with Titanium. * Building for mobile apps is not the same as building for websites. * Daily iterated with working prototype nightly to test. * Submitted. * No marketing. * Poor sales. * Lost motivation. * Use app daily. ##Longer version * Built a learnalist.net (never launched) * Built an iphone app in Titanium * Made mistakes * Titanium has bugs. * Javascript skills were not good enough to use the early versions of * Titanium with scoping bugs. * Forced breaks from the computer + daily usage = App evolved. * Daily work + daily goal = A workable app almost from day one. * Made even more mistakes, mobiles are not like websites. * Titanium has bugs, improving with each release, sometimes breaking your work. (not a negative) * Titanium evolves. * App evolves. * Make more mistakes. * The app is ready. * Make the app a little prettier. * Few more features creep into version 1. * Prepare for app store (easiest bit). - screenshots - blurb - a website with screenshots. * Submit. * Set price to $2.99 (I built this for me first, someone else second) * Sales for the first week, geek friends, not family. * In almost a year sold less than 30 copies. * Lost motivation. * Months passed. * Started to improve the app. * Iterated over the most important things I and a few others wanted to see in version 2. * Titanium got a little better, less bugs, “require” huge plus. * Submitted new app. * Sales still as bad as before. * Now I tried to market it (a little) and failed. * Never took marketing seriously. * Use the app daily and not just for learning Norwegian. * Dropped the price - slight change nothing major. * When version 3 arrives, I will release at a new price point. ##Book version ###A Concept was Born I moved to Oslo, Norway sometime in 2009. Not being a native Norwegian, I was (still am) faced with the need to learn the local language. Being a web developer gave me a blank canvas. From this blank canvas, “Learnalist.net” was born, “Learnalist” would allow me to grow my “vocab learning tool”. “Learnalist” was never launched, but to a handful of users, I being the heaviest user. Journeys to work, gym or anytime I needed to sit on the bus, would have me adding a random word I saw. Usually triggered from looking at an advert, or seeing a word as we drove by. Between [Majorstuen](https://maps.google.com/maps?q=oslo,+norway&hl=nn&ll=59.930119,10.717678&spn=0.024126,0.076818&sll=59.940153,10.719241&sspn=0.01206,0.038409&t=m&hnear=Oslo,+Noreg&z=14) and [Nationaltheatret](https://maps.google.com/maps?q=oslo,+norway&hl=nn&ll=59.919366,10.736818&spn=0.024134,0.076818&sll=59.940153,10.719241&sspn=0.01206,0.038409&t=m&hnear=Oslo,+Noreg&z=14) (places in Oslo), there is a small black spot in the network where internet connection dies. This is where the seed was sown for my yet to be launched website, MUST work on the mobile. (of course!) ###Starting Creation Taking a small feature of “Learnalist”, the personal list, I looked to copy it to my mobile, I was drawn and still am drawn by Titanium / Phonegap (Cordova) concept. Starting with Titanium, I took my website building skills and applied it to the mobile. Terrible mistakes were made with Javascript scoping issues, some on my part and some on leaks in the earlier versions of Titanium (incase you stop here. Titanium with the use of commonjs has really fixed many bugs and made a much cleaner and enjoyable way to code) The most important feature of Wordpoke is to remind you at certain times of new items to review. Therefore the reminder system is where I learnt the painful lesson the most that: * mobile is different from website. * non iOS code can have bugs which leads you to learning little parts of objective-c. * non iOS code may not have implemented the iOS code functionality (again improving all the time) * reading about the native functionality Please remember the following when coding on any 3rd party tool that promises development across multiple devices. * iOS is not Android. * Neither are B2G * None of the above are a website. * One size does not fit all. I tried to write my own “reminder system”, as you would have to do in a website. However, iOS has notification (localNotifications), Titanium supports it (has had bugs). Yet I only learnt both these facts after I tried my own. Reading the manual would have saved me a large amount of frustration and time. (Rushing to code, sometimes is a downside... pains me to write it, yet its true) Fully understanding asynchronous usage and how iOS is built on it, would have helped too. Back to the “native functions”. It helps to understand fully the concepts used for the mobile you are writing your application for. The day will come when Wordpoke will arrive on the B2G and Android. I will have a phone running B2G / Android and already know I have to adapt how the notifications system works with the “rules” of that device. I am okay with that. Reusable code is one thing, code where one size fits all, is still a little way off.... **This is copy of what is written at the top as it to me is the best thing about building Wordpoke.** --- The following is what took wordpoke from an idea to a finished product. At the start I could only work on Wordpoke for a few hours a day, after work. Knowing I had a few hours of computer time available, I would make notes around those hours and arrive knowing the task / goal / position I wanted to reach at the end of the day / hours. This lead to daily achievements and as soon as I could I made it so that each day the application must still function. If not, do not update the mobile. --- Using git, with branches, it makes the trivial. I had hoped to look back over the code and recompile and take screenshots etc. However with Titanium evolving overtime, some branches which worked. Since then have broken due to little bug fixes etc. Because of the nature of Wordpoke, for a long time, it was okay to accept the app could only add items. I could scroll down the list of items when I wanted to review them, yet equally knowing the vision (read aim) and seeing what it did today always helped fuel me to take it to the next task, the next goal to reach the vision, daily. This process really helped shape the development a lot more than I realised and has since been a huge takeaway for me in all aspects of my coding. The logo was created with Inkscape. The splash screen photo is a inland lake in the West of Norway looking towards Røldal. ###I launched. The app store did nothing for me, I had expected some level of traction / exposure from the App store and was quite surprised at how little there was. Many blog posts have been written about this aspect, so I will stop here. Demoralised... I was, how could the app store not suddenly make me rich. Did I really average out that poor hourly rate from building such an app... etc etc “Demoralised Developer walking”. I loved using my app, thinking up new ways to use it. I made no effort marketing the app. Even today, it surprises me, I know the problem, I have put the hours in to make a product and still I dont focus enough on the marketing. I know im not alone on this. ###Fast forward: * I had my 1 million sale.... (I lied, remember less than 30 sales!) * I wanted to update the app. * Turned on the Titanium editor, updated the sdk + version... * Compiled. * Nothing. ####What? Dug a little deeper, discovered Titanium had evolved, I had not. What do you mean I need a new apple sdk? In the time from launching to working, Titanium evolved. Apple released a new version of iOS and my app no longer worked from the same code that a binary was made, approved and sold from. ####Translated: More work for the developer. Working with html, evolves but you rarely have to worry that the “script” tag will disappear or something equally crazy. ###Fast forward: Now that the dust has settled and im looking to tidy up my bug fixes and add some new functionality to Wordpoke, this same issue has a risen. Accept it, move on. ###Links: * [Inkscape](http://inkscape.org/) * [Titanium](http://www.appcelerator.com/developers) * [iOS](http://developer.apple.com/) * Mobile Dead spot in Oslo Between [Majorstuen](https://maps.google.com/maps?q=oslo,+norway&hl=nn&ll=59.930119,10.717678&spn=0.024126,0.076818&sll=59.940153,10.719241&sspn=0.01206,0.038409&t=m&hnear=Oslo,+Noreg&z=14) and [Nationaltheatret](https://maps.google.com/maps?q=oslo,+norway&hl=nn&ll=59.919366,10.736818&spn=0.024134,0.076818&sll=59.940153,10.719241&sspn=0.01206,0.038409&t=m&hnear=Oslo,+Noreg&z=14) * [Photo looking towards Røldal high up in the mountains.](https://maps.google.com/maps?q=R%C3%B8ldal,+Noreg&hl=nn&ie=UTF8&ll=59.794071,6.770325&spn=0.096901,0.307274&sll=59.919366,10.736818&sspn=0.024134,0.076818&oq=R%C3%B8ldal&hnear=R%C3%B8ldal,+Hordaland+fylke,+Noreg&t=m&z=12) * [Wordpoke Sale Site](http://wordpoke.me/) * [Wordpoke on iTunes](http://itunes.apple.com/us/app/wordpoke/id471756627?ls=1&mt=8) #Thank You.
Read only access currently to google plus api
Read only access to Google+
"Note: The Google+ API currently provides read-only access to public data."
The reasoning behind not supporting read & write access to the api is probably vastly different between a "Big Fish" and a "Small Fish", yet it makes it clear.
"it is okay to release an api with limited functionality."
Read only
A few methods
Its refreshing to see this being done by a high profile site as it reminds me that your product doesnt have to be anywhere near finished to the "vision in your head" before you should open/release it.
Take away advice for you and for me:
You can launch your api if any of below are true:
Before it is fully complete.
As soon as you have data to share.
As soon as you have data to receive.
UI development for iOS devices is not easy
I have been using Titanium for building (wordpoke), some of the biggest areas of frustration and lost time has been the work with the UI look and feel.
Things which instantly come to mind:
Fiddly
cumbersome
Leads to new problems
Over a year long problem of inserting into the front of a table
Hiding default borders
More than X elements in a table row causing the app to grind to a halt when you have more than 100 rows.
When iOS is updated, things may not instantly work (this in itself could be a blog post)
Since then I have looked at Interface builder from Apple and have instantly fell in love with the notion of drag n drop, stretch or shrink, see the design on the fly, the list goes on.
I have yet to dive into the actual iOS development in objective-c, I am keen.
But
This morning via HackerNews I find myself wondering if this will end up being a case of the grass is greener on the other side.
My current take away from the above is, we have been spoilt rotten with the freedom of expression handed to us via html and css.
it would appear the addition of moving parts and sexy animations, not something we are used to seeing over the years in html. The barrier to a greater freedom of expression has been raised and coding for it is harder and more finicky.
Whenever I hit a bug in the UI I have a dreaded feeling of "tweaking the CSS to make IE work" and "this is going to take an unknown amount of time to fixed", this last part can really be soul sapping.
A final thought
Today when I work with html+css I do it via the code as I have long since learnt it is the faster and easier way.
"edit",
"save",
"refresh",
"repeat".
Yet to do that in "xcode" or "titanium" the "build process" is just a little to slow compared to the beloved "refresh".
Search
titanium insertRowBefore
Links
Socialcam and their frustrations with UI development on iOS
Socialcam Interface Builder Challenge of sorts
Example of the insertRowBefore problem
insertRowBefore still not fixed, even tho this bug report would make you think otherwise
I actually got this link via [marco.org](http://www.marco.org/2012/01/30/paperback-or-hardcover), the guy behind Instapaper. Im half way down the page and it has me chuckling away, well worth the read.
Take a snapshot and restore your database in titanium
Working with your database in titanium
"This assumes you are working on a mac osx."
Aim
Find
Copy
Restore
Explore
Conclusion
Aim
To create a snapshot of your working ".sqlite" database.
Allow for easily restore your database whilst developing your app with Titanium.
Understand how to view the contents of the file.
Find
Locate your database.
find ~/Library/Application\ Support/iPhone\ Simulator/*/Applications/* -name "*.sql"
If you have multiple folders and your willing to start with a blank database you can clean them all up with.
find ~/Library/Application\ Support/iPhone\ Simulator/*/Applications/* -maxdepth 1 -type d -prune | xargs -I{} rm -rfv {}
(I wrote about a clean build before)
Now with a clean directory. Compile your app.
Run the first command again.
find ~/Library/Application\ Support/iPhone\ Simulator/*/Applications/* -name "*.sql"
This time only one directory will appear.
The result:
/Users/[USER_NAME]/Library/Application Support/iPhone Simulator/5.0/Applications/[APP_ID]/Library/Private Documents/[NAME_OF_DB].sql
[USER_NAME] Your username
[APP_ID] The Id, I believe its created by Xcode. Yet to figure out where, Titanium stores it locally.
[NAME_OF_DB] The name of your working ".sqlite" database, you would have set this in your code.
Copy
Simply copy the path, best use '"' so that it accepts the spacing as is without backspacing.
cd [PROJECT]/database_backup/ cp "/Users/[USER_NAME]/Library/Application Support/iPhone Simulator/5.0/Applications/[APP_ID]/Library/Private Documents/[NAME_OF_DB].sql" .
Restore
cd [PROJECT]/database_backup/ cp [NAME_OF_DB].sql "/Users/[USER_NAME]/Library/Application Support/iPhone Simulator/5.0/Applications/[APP_ID]/Library/Private Documents/"
- Exit your app. - copy the sqlite database back. - Run you app.
Examine
The file is in ".sqlite" format which means you can explore it.
cd [PROJECT]/database_backup/ echo ".dump" | sqlite3 [NAME_OF_DB].sql
This will give you the raw sql lines that are needed to build / copy / recreate your sqlite file.
If you use:
sqlite3 [NAME_OF_DB].sql
Now you can test your sql queries, tweaking them and then fixing them in your code.
Conclusion
It really does speed up productivity and development of your app. This article is due to the knowledge gleamed and time saved whilst working thru an issue in "wordpoke" my Titanium built iphone app.
Once the above was figured out, "Issue 14" became a lot easier to debug as I was able to focus just on the code, not the constant recreation of data to test if the new code was working as expected.
Go to bed earlier — the Internet will be fine without you.
http://zenhabits.net/tired/
Headless vmware on mac
Running vmware headless on a mac.
Read the help file.
cd /Library/Application Support/VMware Fusion ./vmrun --help
Example format for starting.
./vmrun -T ws start PATH_TO_FILE nogui
PATH_TO_FILE ends with ".vmx".
Notes
Added this to my "General-Book".
How to clean build for Titanium Studio
In this post I will explain how to Clean all builds when working with Titanium Studio via the command line. As I have been only working to date with iphone specific, mobile apps. It should be noted this possibly wont work so well for clean builds on android, nor for desktop.
Clean build Titanium Mobile Projects
A warning.
This is very much a hammer approach, it removes all build projects. Not one.
This was created on a Mac.
This I am sure will ONLY work for iphone development.
You will delete all builds.
Understand the commands before you run them. If you delete code that is not backed up somewhere. That is your fault!
Follow the steps:
Lookup
find ~/Library/Application\ Support/iPhone\ Simulator/*/Applications/* -maxdepth 1 -type d -prune
If it looks good procced, if your nervous, cp the whole lot somewhere so you can put them back.
Lookup + delete
find ~/Library/Application\ Support/iPhone\ Simulator/*/Applications/* -maxdepth 1 -type d -prune | xargs -I{} rm -rfv {}
*Copy the whole line as the theme cuts off the last little bit
Clean the build for the site you want to rebuild
Now we clean within our projects.
cd INTO_YOUR_PROJECT rm -rf build/ mkdir -p build/iphone/
I added the "mkdir" part, as the first time I did a rebuild, it complained it was unable to find the tiapp.xml, yet when I hit "run" again, it just worked, so I concluded it was missing the directory.
Unanswered Question
How does the magic iphone number get displayed.
In the "Lookup" there were magic iphone numbers created, as hash of sorts. I searched my projects and couldnt find reference to them other than in the directory. Im guessing its an apple thing.
Equally, when you clean build, you will see you get a new id, so I think the hash involves the timestamp.