Communicate, communicate, communicate – and how to lure you into reading
As usual there are development stuff at the top and the fun is at the end to lure You into reading.
Code and development
Teaching kids programming
Pluralsight, makers of well known online programming videos, are sometimes giving away videos on chosen subjects.
This time it is about learning kids to program.
Caveat1: I haven’t looked through the whole video – my personal competence is higher and my patience lower.
Caveat2: The freebie might be time limited so by the time you read this you might be too late.
Create random test data for database
I am one of those who has released a solution to customer and had good performance.
Until reality hit with 10000 entries in a table and my bad design floated to the surface like a… like a… like a… floater.
So nowadays I keep my test database filled with data.
But there is still a problem – my test data looks rubbish.
I have below linked a gratis online solution to remedy this. Enter fields, their type (name, country, email, phone, date time, domain, words, sentences and many more) and just press Generate.
The data is clearly US centric but the Datetime is, low and behold! ISO format.
If you need to create random credit card numbers there is a link for that too.
el.js – create dom objects easier (web)
With jquery it is easier but still ugly.
The lib el.js makes it both easier and better looking to create dom elements.
Follow the link for some examples. Googlewithbing for how it is done in jquery.
Aspnet Webforms life cycle events (dotnet,web)
There are more events than I care to remember in Webforms and normally one doesn’t have to remember but a few.
But then one does Master/Content pages and suddenly realise that the order of events is important.
And then one does some code reuse by implementing a custom control and realise the order of events and what to do in which event is crucial.
Good then to have an explanation and cheat sheet.
Visualstudio plugin – Json visualiser (win)
The “visualiser” is the magnifying glass you see when inspecting a variable when debugging in Visual studio.
There are already for text, xml and html. With this download you can also see objects as json.
Come to think of it… with web essentials there is a “paste json as object” alternative. This way one should be able to get any object’s data, anonymous or not, visualise it as json, copy it as string and then pasting a class. Or sniff the network traffic with Fiddler2 or whatnot. Show the data received as json. Copy and paste it as a class structure.
Tutorials on the chrome web browser debugger (web)
I use different web browsers not only because my users do but also because the debugging tools excel at different things.
Below are some courses on the debugger in Chrome.
I recommend it if you do web development – even a die hard sooper dooper hard kore hacker like I found a gem. To be precise: it is not because I don’t know but because the user interface is a bit clumsy sometimes and hides its own functionality.
If you continue to browse codeschool there are more courses and after a signup some of them are gratis.
Competence level on courses are between beginner and experienced.
Can we ditch jquery? (web)
As per today I reflexively include jquery in my web projects.
But do I need to?
If one can skip IE6 (which one can, depending on target audience) and soon skip IE7 there is a big chance one can write code that runs everywhere without too much shims.
Note that next big version of Jquery doesn’t support IE8 so I am not too far out on a limb here.
Why ditch Jquery then? Because it can be slow. Because it puts on yet a layer.
I have now twice heard/read about people not including Jquery at start but instead using libs and frameworks like Knockout and Angularjs to manipulate the DOM. I haven’t tried Angularjs but my first try at Knockout showed me that the code I thought was easy to read really wasn’t – instead it had been a mix of UI logic and UI manipulation in a way that I never had allowed myself to do in a more controlled (read WPF or even Winforms) environment.
I have written about this site earlier but with a different approach.
This time I want You to consider the value of having small pieces to put together instead of one catch-all framework.
Having two or three old and present sites in my head I read through the first 50? rows and came up with 2 or three frameworks that might help/have helped me.
There is el.js to add items to the DOM. There are a couple of IoC frameworks. There is time.js for handling time data – why don’t the world use ISO? There is isMobile for checking for mobiles and 7″ devices – not something one can do with a simple check normally. There is range.js when you need to create ranges of something.
With Visual studio 2012 with web essentials it isn’t much job to bundle and minify the scripts. Well… it is even better; the scripts are kept apart and not minified while debugging and then bundled and minified when Release compiled; best of both worlds.
Responsive design frameworks (web)
Responsive design is like programming without variables.
It is more like playing a game than a making a real solution.
So to lessen the burden one should use a framework.
Tidying CSS (web)
Getting responsibility of the CSS part of a project is like running around in a pitch black child’s room. Barefoot. With lego blocks on the floor. One wrong step and one is in for a world of hurt.
My GF says it is like applying mascara. Once it is there it must not be removed but only added to.
So tools are needed for CSS.
Caveat: I haven’t tried these but most certainly will as soon as time allows.
Csscss is a ruby solution for looking through a CSS to find duplicated uses. It also does LESS with another gem.
Using Dotnet (mono) on Raspberry pi (dotnet,linux)
Mono, the dotnet port outside windows, can be run on Raspberrypi.
This makes it possible to use your favourite language on a very small and cheap device with a big user base.
Mono does Winforms and Aspnet (which i guess is (a subset of?) web forms.
There is no mentioning of Nancy but as nancy is lighter than Aspnet and does not have any relation to System.Web it should be doable too. Says I who has tried neither Raspberrypi, Mono nor Nancy.
Jade – Haml like syntax for html (web)
Check out the text on the landing page.
By using/writing Jade instead of HTML you don’t miss the closing tag or many other typos that are easy to do in HTML.
Haml is predecessor for Jade but for the Ruby world.
Then there is Yaml which is a simplified XML which is both faster to write and easier to read. Plus one cannot miss the closing tag since there is none.
Craftstudio – graphical game programming (win,osx,linux)
A graphics heavy programming environment for games.
30€ is not expensive.
I haven’t tried it myself but the demo vid looks impressive.
2D with animations. Requires backbone and underscore.
Can render in contexts svg, canvas and webgl.
Projects and leadership
Scaling crazily fast
Pinterest scaled to 10 billions page views a month views in 2 years!
From the article:
“They’ve gone from 0 to 10s of billions of page views a month in two years, from 2 founders and one engineer to over 40 engineers, from one little MySQL server to 180 Web Engines, 240 API Engines, 88 MySQL DBs (cc2.8xlarge) + 1 slave each, 110 Redis Instances, and 200 Memcache Instances.”
The article contains lots of lessons learned in a boring and easy to read bullet point way.
I thought it was interesting though I will hardly soon be in a project that grows at that speed.
How to draw diagrams – and not
A SimonB has written a not too long article about keeping it simple – diagram wise.
To make the article even shorter here are some bullets:
1) Abandon UML. There is nothing wrong with UML but it is too clumsy to work with. Pen and paper rocks! and coloured crayons keeps the fun alive.
2) There is a System or Context diagram. 10000 meter view without technology. Draw a box of Your system in the middle and small boxes for other systems around. Users are visible from 10000 meter.
3) Containers diagram. A container is something that executes or where data resides; something that needs to be kept alive for the whole System to work. A web site, a service, a database or an application is typically a Container.
4) Components diagram. Draw one Components diagram per Container where applicable; databases often do not need a Components diagram. A Component is typically a visual studio sub project, a service interface or a pure logical abstraction.
My comments are:
Keep the diagrams easy to update.
Don’t necessarily keep them 100% correct – humans will read them anyway.
Keep the diagrams visible.
How Spotify does devops
Devops is about removing the wall between Devs and Ops. It is also about getting decisions from the meeting room into the final customers’ hands as quickly and safely as possible.
Below is linked a somewhat length article about Spotify’s take on the subject.
TL;DR: They have Team lead, Project owner and Agile coach which cooperate.
Products and releases
Opera is going Webkit and Google is forking Webkit (web)
What does this mean?
(I am only covering the desktop landscape here)
Lets start with Opera.
It is know as the standards compliant browser with too few users.
Now it has changed to the Webkit renderer which makes it behave like almost everyone else (but IE as normal).
Good: one less browser to test
Bad: the html renderer gene bank is getting thin
Which would make Chrome and Opera render and behave similarly.
Google is forking Webkit
and as Google is paying Opera for being the pre chosen web searcher a good bet is that Opera is following the Google fork path Blink.
Glimpse supports EF5&6 and adonet (web,dotnet)
Glimpse is an awesome tracing tool for web.
I guess even open source.
Latest release supports tracing from the web browser all the way to calls to the database.
The architecture is pluggable so more can be achieved with some elbow grease.
Latest release supports calls from EF3,4,5 and even 6 (still a bet) and with some tweaks also Adonet-calls.
How does one make a 12USD cellular phone?
Besides child labour and not caring about the ecology i mean.
The original site, Boingboing is as much about freedom as about sharks with lasers, so it was strange to find the article linked below being not about abuse of people and nature but more of a “it can be done – yeah!”
Every backup strategy has its own pros and cons and I won’t dive into them but instead present a new player; Bittorrent sync
The solution linked below seems simple. The traffic is encrypted for your and your only use. It uses bit torrent as protocol.
Runs on Win, Mac, *nix.
It does not look like it is open source.
Check under Developer tools to. I don’t understand everything but it looks like some kind of bit torrent with the browser as GUI.
Code digger – analyze code to create test data à la Pex (win)
Creating input for unit tests is boring.
Pex is an experimental software from Microsoft that helps with that. Now there is also Code digger that analyses code to make better educated guesses about what data is worth testing.
There is a limitation though – it only walks public code and only portable such.
Markdowndeep – c# markdown implementation (dotnet)
Markdown is a very simple format for simple formatting. If you ever have shared something on Stackoverflow then you have also used a Markdown variant.
Personally I have adopted markdown for communicating with my customers.
I haven’t tried Markdowndeep myself – I am just a fan of the format.
Privacy, security and rights
Microsoft / Live has two factor authentication
Set it up!
If you use Gmail you should have set it up a long time ago.
Set it up!
Simplified; What happens is that you get an SMS ever 30 days or so for making sure you are the right user of the account. I have used this for a long time on gmail and it is a hazel nut of a hassle for a full container of security.
Twine – create your own interactive stories
Twine is a downloadable application for creating interactive stories. The interactivity consists of hyper links which can make a story fork and allow the reader to choose his/her own adventure. There are also normal hyper links to make the old fashioned book proven linear reading more colourful; or at least linkful.
It is based on TiddlyWiki which is a downloadable wiki engine/application.
TiddlyWiki can be though of as a normal editor with link capability and it can save its output as HTML to copy as static pages to a web server. (Using it as a stand alone help document springs to my mind too.)
US war aircraft 360 cockpit online viewer
Especially if you are a war aircraft nerd this link is nice.
It is 360 interiors from the US warfare aircrafts from WW1 to the cold war. In the latter there is as much electronics as there are little in the earlier.
But that is only a little.
“Walk” inside the museum and look at the exterior of the aircrafts too.
Remote controlled quad copter with stabilised camera
Still a bit expensive but prices are most certainly coming down.
Unless the stupid US patent system puts a halt to innovation; as it tries over and over again.
( There is another way to stabilise the camera image and that is to move each picture in the movie around afterwards. The amount of shake tolerated is the amount of border allowed to be wasted. )
Foldable rubber boots
As the title says.
I used to have boot overshoes that where thin enough to fit inside a toilet paper roll. I had them constantly in my bag to bring forth at rainy days. This way I could have nice looking shoes at dry days while still being dry at rainy. They have unfortunately been worn down and I have found no replacement.
The boots linked below are bigger than my old overshoes but also nicer looking.
Calvin and Hobbes: The movie
Don’t be afraid.
Calvin and Hobbes is, to my knowledge, not begin abused as a cheesy Hollywood production to render some income and stain the history of the awesome cartoon.
A bunch of guys calling themselves GrittyReboots did their own take on Calvin and what happens when he grows up.
The same guys also did Goodnight moon which is a children’s story but remade as a horror short story. A good one.
Funny public bath rooms
…or rest rooms as they are called.
Wringing a wet towel in space
Just a nice presentation about water and surface tension.
Electric power outlet design
Power outlets are ugly
but we have gotten so used to them that we don’t see them any more.
Below are linked some improvements on the design.
Next time I will mention TV sets
that are even uglier.
A big black square in prime place in the living room.
Who came up with that idea?
Coffee shop ambient sound in office
Do you have a hard time concentrating when it is quiet?
Tune in and crank up the ambient sound of a coffee shop.
The sound is proofed to not have any 16 year old girls chatting too loudly about nothing and facebook. Ditto boys.
Sketch like Escher online
An online F/OSS solution for drawing kaleidoscope.
If one could combine the kaleidoscope mechanics with artistry like pencils, styles and other fluffy values we might have something really cozy to play with.
It is open source so feel free to grab my ideas above and implement.
Online gratis manga
If you like manga, here is a gratis resource.
Or if you are curious…
…here is a gratis resource.
I have read a couple.
But I still don’t like manga.
But I do like Miyazaki but can’t find anything free.