Subscribe: secretGeek
http://secretgeek.net/rss.asp
Added By: Feedage Forager Feedage Grade B rated
Language: English
Tags:
board  cards  don  dotnet  game  games  net core  net  new  numbers  play  player  product  run  stack  time  work 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: secretGeek

secretGeek.net



secretGeek.net



Copyright: Copyright 2017 Leon Bambrick
 



How to get in the zone

Thu, 21 Sep 2017 19: 53:08 GMT

Be very careful with this knowledge. Use it sparingly.

Yesterday I had a mountain of work in front of me. It was 3 pm and I knew I would be working until at least 7 pm.

I took a deep breath and reached for a Spotify playlist called 'Deep Focus'.

I took one large slug from my coffee cup, pressed play on Spotify, and turned toward my work.

It was as if someone had pressed the turbo button on my mind.

(image)

Within moments the hyperdrive was fully engaged.

(image)

I sped through the galaxy at beyond light speed.

(image)

All knowledge and facts and wisdom of the ages were immediately available for use by my expanded neural membranes.

(image)

A bubbling fractal panorama of tasks roiled up in front of me and was completed and delivered as quickly as it emerged.

(image)

I was a digital demigod surveying the writhing landscape of technical problems, assisting the lightning arcs of insight to cut down from the bubbling clouds of possibility and materialize into the dazzling particles of fully realized innovation.

There was no yak whose hirsuit locks could challenge the sharpened razor of my wizened scalpel.

Less than an hour later I pressed commit on the last of these tasks.

I looked down to find my coffee was cold, completely untouched.

There was no more work to be done. I basked for a moment in the featureless landscape of a world with no remaining tasks. It was warm and dark and devoid of form. I felt at peace and at one with the flowing energy of the universe.

What I'm saying is that the Spotify 'Deep Focus' playlist is OK.

This morning I listened to the playlist once more. It sounded trite and useless. The magic was gone. I'd become immune to the effects, I'd grown tolerant to the active ingredient. I'd need to up the dose if I wanted the same high.

Now I'm on the prowl for playlists that bring a deeper and deeper sense of focus. Will I ever get back into that zone? Send playlists.




Publishing on Amazon: Lakes Creek Adventures

Tue, 19 Sep 2017 21: 28:29 GMT

I turned my Dad's handwritten memoirs into an actual paperback book, available from Amazon (and on Kindle) under the title "Lakes Creek Adventures".

(image)

See 'Lakes Creek Adventures' (at Amazon)

And you can do the same. Need advice or assistance? Ask me anything in the comments or by email to leonbambrick at gmail. (Seriously, you're welcome.)

The book covers just the years of World War II wherein my Dad, a sandy-haired kid aged 6-12, was raised in a pub (a hotel, a drinking establishment) in Rockhampton (Queensland, Australia) in a large family. During the last half of the war, Rockhampton expected to be attacked by Japanese bombs at any moment. The population of Rockhampton was doubled with an influx of 42,000 American soldiers. It was a surreal time to grow up, and full of adventures.

(image)

Making the book 'print ready' was an educational exercise. After a bit of research, I decided to use CreateSpace (an Amazon company) and mostly followed this guide: A Step-by-Step Guide to Book Publishing with Createspace. I've had published authors look at the product and be surprised at the level of professionalism. It could be better, but it's far from terrible and my dad was very happy with the result.

If you get the chance to do the same, I heartily recommend it.




Using Computers to Invent New and *Fun* European Style Board Games

Sun, 18 Jun 2017 00: 43:32 GMT

I've been playing board games with some of my nerd buddies lately, and, as always happens when I partake of cultural activities, the creative impulse is fired up and I start thinking (mono-maniacally) about how to make my own. As I see it, there are 3 major design aspects for these games: Theme Mechanics and Art work. Theme and art work can be evaluated using your own sense of taste. But mechanics can only be evaluated by "play testing". And this is the major limiting factor for a solo designer; even for a team of people this a very resource intensive problem. So my mind then turns to genetic algorithms (GA)... how can I build a system that represents the rules of a game in such a way that they can be evolved? And in particular: how can the effectiveness of a set of rules be evaluated? There's two tricky aspects here: First you'd need to build a general game playing engine that can play the game against itself. Second, you'd need it to provide information about how "fun" a given rule-set is to play. This sense of "fun" is the crucial thing that needs to be defined. But on that first problem for a moment: a general game playing engine. My research led me to find that there are "general game playing" engines out there. And the academic term for them is (drum roll) "general game playing engines". One example is Zillions of Games("ZOG") which encodes rules as S-expressions. (Old timers: yes lisp of course; newbs: like JSON.) ZOG includes a 'self-play' mode in which it plays the games against itself. I don't know how good it is at the games. However ZOG is not capable of representing the kind of games I want to evolve. Background reading: I read this short paper: Automatic Design of Balanced Board Games (pdf) This was an interesting and very straight forward read. They used ZOG and a GA to explore rule variations in 2 player board games (such as checkers, reversi, connect 4) to evolve rule systems. They had a very limited sense of "fun" Comprised of just two things: Don't confer an advantage or disadvantage to the first player (they call this "balance" -- though game designers use the word balance for a lot of other concepts too) Avoid games ending in a draw. Representing any type of game. In my theoretical system you'd need to be able to represent all sorts of games that combine cards, boards, pieces, trading, information hiding, and so forth. It might be worth describing first a single "über" game that demonstrates all possible elements. Here's a partial example. (Numbers like X6 are numeric variables which would be set in the rules. Most such variables would be equal to zero.) Start of game Each player is given X1 "Action" cards and X2 "currency1" cards and X3 currency2 cards and x4 "currency3" cards (and so on for N1 types of currency). They are also given X5 Power cards, and X6 cards from a shuffled deck of all card types. They hold these cards where other players can't see them. They are also given X7 cards, face down which they cannot see. And X8 cards which are placed facing out in front of each player, such that they cannot see them but every other player can. They also have X9 cards face up in front of them. The layout and setup of the board(s) would need to be described in a similarly generic way. A turn might be described something like this: Player may roll a dice, result d1. Player may roll a dice, result d2. Player may flip a coin: c1. Player discards n2 cards from their hand, turns over n3 cards, picks up n4 cards and discards d1 cards from their hand and picks up d2 cards. Player may choose to play A1 action cards. Or they may allowed to buy the right to play up to A2 action cards. They may... etc. A possible "building" phase and a "trading" phase would be included as well, including moving pieces on a board, and trying to guess some series of facts. Game ends when any player fully understands the rules.[...]



Dadding 101: Give Your Kids A Trail of Codes To Break

Sat, 18 Mar 2017 01: 48:14 GMT

This is one of those classic parental games that's fun and educational.

My youngest kidlet was home sick last week, and she happened to find a strange note that was composed of just numbers.

Where did this note come from? What did it mean? It was most puzzling.

She's only just learning to read, and getting her to do her reading writing tasks is pretty challenging. But she's read enough Billie B Brown Secret Mystery Club books to know that a note composed of just numbers is always the start of an exciting adventure.

She went with the assumption that "A=1", drew up a translation chart, and she was away!

(image)

(image)

When decoded the message told her to look on the printer. When she went to the printer there was a fresh note that required decoding. That one led her to under the stairs.

And so on, all day long, she chased a linked-list of notes, and practiced de-referencing a pointer, like a good little program.

The final clue told her to ask her mother for the next clue. Mum produced a clue, which when decoded, said "It's ice-cream time!" and everyone was happy with that. I was particularly pleased because I had no idea of how it should end, and sent it to mum as an easy exit.

All up, I strongly recommend trying this kind of puzzle on your own kids, or any kids you find in the neighborhood.

The simple "A=1" puzzle was good for a 6 year old, but you can progress to harder encryption techniques for older and more wizened children, or have the puzzles increase in difficulty as they go. My eldest would've lost interest if she'd been given the same material.

A good "next step" would be a Caesar Cipher, where the "shift" amount is provided. A good step up from that is a Caesar Cipher where the shift amount is not given. That leads into the topic of frequency analysis (though other approaches will work fine too). A nice code to demonstrate is the 'pigpen cipher' (also known as the Freemason cipher), particularly because of it's cool alien-looking characters.

My good buddy and aussie-bush-walker Dr Richard Mason says the EJ12 series of books have some great codes and puzzles aimed at kids (girls in particular). The "39 Clues" is another series I've heard of but haven't seen.

Have you ever tried getting kids into code-making or code-breaking? What happened?




The Ultimate Star Wars t-shirt

Fri, 03 Mar 2017 23: 38:45 GMT

After toiling for eons in the my idea-factory, I finally present to you the Ultimate Stars War's t-shirt: You will turn heads as you move through the crowd wearing this instant classic. Whether it is the thrill of seeing their favorite character, the delight of the perfectly on-brand typography, or the joy of such precision alignment, any TRUE FAN will immediately grab you by the shoulders and demand "WHERE CAN I GET ONE!?" The answer is: right here my friend: Ultimate Starwar's t-shirt Nerdy discussion that ruins the fun... Now that you've finished ironically buying one, I want to talk about product ideas for a moment. I tweeted about that shirt last week, and my mentions immediately filled up. It was an obvious hit within minutes. This doesn't happen to me very often, so I like to take notes when it does. And this blog is where I put the first draft of those notes. Fortune of course favors the prepared Boyscout or something like that. It only took a few minutes from having the idea to unleashing the product; it was ridiculously quick. But there were hours of behind the scenes preparation that put me in this position: last year I hosted the inaugural Stupid Ideas Powershell Slackathon, during which I created a command-line tool that let's you turn error logs into t-shirts: Out-TShirt. Developing that also meant I was already signed up and approved to sell at teemill. And it meant that once I'd completed my work in MSPaint, I could turn it into an online shirt (and put the resulting url in my clipboard) with a single command: dir "bad_shirt_idea.png" | out-tshirt | clip When you're trying out product ideas you're looking for a demand signal. If you don't get a demand signal, then you ditch the idea or make a big change. Once you get the demand signal you only make small changes. You don't keep trying to sell a product that won't sell, you propose little ideas, continually, and see what the market tells you. If you've done well, you'll hear about it. If you've done badly, you'll hear nothing. In the long periods between seeing 'demand signals' it's easy to forget that these signals exist. So, as a nerd and an archivist, I want to record some of the forms that the demand signals took in this instance. This is the kind of detail I gather up and try to understand, as research for my forthcoming book on making products. Some of the things I saw happening in my twitter mentions were: people asking for tweaks, changes and small variations example, example, example, example, example, example, example, example, example, example, example, example people directly recommending the product for other people, or talking explicitly about buying the product example, example, example, example, example, example, example, example, example, example, example, example People expressing appreciation or a physical reaction to the product. (Because it's an ironic product a lot of these reactions were negative but in a good way.) example, example, example, example, example, example, example, example, example, example The signs may be more subtle than they were in this case. But the only point I'm making is: look for the signs. If you see the signs, then take advantage of them. If you don't see the signs, move on. Now go sign up to be notified in case I ever finish the god damn book. (p.s. I *will* finish it.) p.s. the shirt is available in black and yellow now too: [...]



pushpop, a mental stack manager

Fri, 10 Feb 2017 07: 13:49 GMT

You're working on one problem, when another problem arises... or perhaps an interruption occurs... now you need to push the new problem on top of your mental stack, and the old problem moves down deeper into your soul. You start to solve the new problem, but remain ready to come back and solve the previous problem.

What do you do?

(image)

Turn to pushpop.

pushpop is a mental stack manager.

It lets you see the top of your mental stack.

(image)

Pop

When you've completed a task, click pop. (it makes a nice popping sound) and that task is gone.

The next item rises back to the top of the stack.

Push

But wait... you are interrupted in your quest to complete the item on top of the stack.

What do you do? You enter the new item into the textbox, and push it. Now that item is on top.

(image)

Peek

There's one more feature... peek...

(image)

Peek lets you inspect the entire mental stack. You can drag items around to reorder them. You can search for items (and can move the item you find to the top of the stack).

Finished peeking? Click peeking... to hide the stack away.

OK, OK, nerdy note... in proper 'stack' parlance, 'peek' is the operation that lets you see the item on top of the stack without popping it. Looking at the entire stack is called 'snooping' (well that's the slang term we used at university when i was kid...) But I'm using Peek here because I like the aliteration. The CLI would call it 'snoop' however.

History

While peeking, you can also view previously completed items, if you click history....

Current status

As you can see from the balsamiq mockups above, this is just in the idea phase. It's based on Next Action

CLI

There could be a command-line interface.

pushpop --peek                 # shows you what's on top
pushpop --push "debug the sql" # puts a new item on top of your mental stack
pushpop --pop                  # returns the top most item, but also removes it from the stack (and archives it?)
pushpop --snoop                # shows all items currently in the stack, from top to bottom.
pushpop --history              # shows all completed (i.e. previously popped items) including datetime of completion.
pushpop --help                 # provides help with pushpop and life in general

Implementation

I've created a repo for the project, but written no actual code as yet.

pushpop on github

Implementation is left as exercise for the reader. I suggest electron. Send me a pull request when you're done.

If the stack was stored in the cloud then you could also have iOS/android version for managing your mental stack while on the move.

Last thing

I didn't mention Yak Shaving. Why didn't I mention yak shaving? Here's a yak in need of a shave:

(image)

Yak image from wikimedia commons




Productivity Flowchart: 13 years in the making

Tue, 10 Jan 2017 00: 27:59 GMT

TL/DR: Go here:

(image)

The very very first article I tried to write for this blog (before it was even a blog) was called 'GeekBlock' waaay back in September 2003. The article was about a process for getting un-stuck. It has always amused & annoyed me that the article sits there unfinished.

Eventually I rewrote it as an article at YourFirstProduct.com with the humble title: 'A 3 Minute Guide to Fixing All Your Productivity Problems Forever.' But its non-linear structure was simply too tricky to follow. People who read it said they got lost about half way through.

Finally, I rewrote it as a tiny application; an interactive flowchart, a choose your own adventure, a tiny state machine. Now I'm happy with it. You can play with it here:

Productivity Flowchart

Some people have suggested I re-write it as an infographic (What is this, 2015?) but I like it as it is. It'll be due for a rewrite in another 13 years, around 2030, I guess.




Sudoku

Tue, 03 Jan 2017 19: 00:45 GMT

Last year I spent a few weeks completely away from all computers. In this primitive state of savagery (that some refer to as a 'holiday') I took to playing a little Sudoku each day, using old-fashioned materials known as pen and paper. Let me tell you, pen and paper are severely over-rated. Devoid of any computing facilities, I found that — much like Porky Pig whom, whenever he's forced to diet, begins to fantasize about food — I began to fantasize about programming. And Sudoku in particular got me really excited. I decided there were three interesting challenges here: How to start with nothing and create a fully solved board. How to remove numbers from a fully solved board until an interesting game is created. How to solve a partially completed board: i.e. how to play sudoku. Start with nothing and create a fully solved board. In my techno-isolation I came up with an algorithm that I thought would have no trouble generating solved boards. Here it is in pseudo code. Do this for each number from 1 to 9, using variable "i". For each row: Keep doing this until you've placed the number i somewhere on that row: Pick a random cell. Check that the cell is empty. And that "i" does not appear in the current column. And that "i" does not appear in the current 3*3 subgrid. if all three criteria are met, then place "i" in the current cell. I thought to myself... will this process get stuck? Of course it won't, I thought. How could it! This is because, as it turns out, when I am away from a computer, my brain turns into useless jelly. When I was finally sat in front of a computer and wrote a version of the code (using LinqPad) I found that very often it did break down. Here's an example: _ 4 _ | _ _ 3 | 2 1 _ _ 3 _ | 2 _ 1 | 4 _ _ 1 _ 2 | _ 4 _ | _ _ 3 ------------------------------------- _ 2 _ | 4 _ _ | 1 3 _ 3 _ 1 | _ 2 _ | _ 4 _ 4 _ _ | 1 3 _ | _ _ 2 ------------------------------------- _ _ _ | _ 1 4 | 3 2 _ 2 1 4 | 3 _ _ | _ _ _ _ _ 3 | _ _ 2 | _ _ 1 ← Try and place a "4" on this row! Sometimes, the numbers that have already been placed will put so many constraints on the next number, that there is no solution. I ran the program a few times and found that sometimes it stopped at 3 numbers, sometimes it made it as far as 6 numbers. I thought I would need to write some clever algorithm that tries to shuffle the problem numbers around, to break the deadlock. In the example above, we could shuffle some other '4's around, to come up with a workable solution... for example.... _ 4 _ | _ _ 3 | 2 1 _ _ 3 _ | 2 _ 1 | _ _ 4 → move this 4 from first to third position 1 _ 2 | _ 4 _ | _ _ 3 ------------------------------------- _ 2 _ | 4 _ _ | 1 3 _ 3 _ 1 | _ 2 _ | _ 4 _ 4 _ _ | 1 3 _ | _ _ 2 ------------------------------------- _ _ _ | _ 1 4 | 3 2 _ 2 1 4 | 3 _ _ | _ _ _ _ _ 3 | _ _ 2 | 4 _ 1 ← Can now place this 4. And if shuffling 4's above isn't enough, we could expand the range of our shuffling. But then I had one of those Engineering Breakthroughs you read about in clever articles on Hacker News. (Mathematicians are never as clever as this.) "Sometimes it hits a deadlock by the number '3'... sometimes it gets as far as '6'... what if I just re-run it a bunch of times, and see if it ever completes?" aka, The Retry Pattern. So I put a loop around it and said, "keep going until you're stuck, then restart from scratch, over and over." And thus, within a second, it wou[...]



2016 by the numbers:

Sun, 01 Jan 2017 00: 22:43 GMT

After reading patio11's voluminous rundown of 2016, I decided to run some numbers of my own. Here's what I came up with as far as creative output outside of work and family time:

No wonder I feel soooooo tired.




Television Bankruptcy

Thu, 24 Nov 2016 05: 08:44 GMT

I am declaring myself bankrupt on consumption of new media.

In particular I've declared television bankruptcy. Heard of some amazing new show? I don't care anymore. My ears are shut.

It also means that I can't ask anyone else to avoid "spoilers" on anything. I just assume up front that if I haven't watched it yet I may never watch it: even if it's a new seasion of show I love. Spoil away. I'm a TV bankrupt, I can't take any new loans against future viewings.

On the plus side, this frees me up to read about stuff on wikipedia in advance of seeing it though... some things I think I enjoy reading about more than actually watching, for example, critically acclaimed films from before the 1980s... often boring to watch, but interesting to learn about. (Putney Swope in particular springs to mind)

Same for books. I have a short amount of time each night (Min: 0, Max: 20, Mean: 3, Unit: minutes) to do any reading. I need to find really choice material that will hold my attention for possibly months on end. I'm still working on deciding what to put into this gap.

Mostly for the last year or two I've been reading a steady diet of Sci-Fi. But it's hard to find anything good enough when the diet is so limited. I'm now in the category of "If you only read 1 book this year... make sure it's...${this_book}"

Book suggestions welcome. (Spoilers about television shows are also permitted.)




The Joy of Making Simple Edits to Microsoft's Docs

Wed, 16 Nov 2016 07: 05:47 GMT

.bb1 {border:1px solid #888} When working on the previous blog post, I spent some time at microsoft's documentation site, where I noticed a small error: two similar articles had their titles swapped with each other. As in: Foo had Bar's title and Bar had Foo's title. Usually you see an error like this and just move on. But the edit button caught my eye, and I decided to try fixing the mistake. I was pretty apprehensive because these kind of things so often lead to yak shaving, and my current schedule does not permit the shaving of yaks. So I clicked 'edit'. This took me to a github repo containing the source file, written in markdown. Hey, I write everything in markdown these days, so this looked promising. I backed up and soon found a page describing how to contribute. Reading the description there, a tiny bug fix like this doesn't require too much work. I "forked" the repository: ...and then cloned the fork of the repository onto my local machine, with: git clone https://github.com/secretGeek/Docs.git UPDATE: There is a much simpler way to do this, that avoids the need to press 'fork', or to clone onto your local machine. It is detailed at the end of this article in a P.S. I found the files that need to be corrected, made the correction, and then committed the changes locally: git add * git commit . -m "title of iis.md and iis-with-msdeploy were back-to-front." Double checked that the changes I'd made were the right ones, by inspecting them again... git diff --cached Then pushed the changes back to github, so that my online forked version of the repository was correct. git push At github, in my fork of the repository, I clicked on 'New pull request' which led me to a page where I could see how my fork differed from the original repo. I reviewed the changes once more, then clicked the 'Create pull request' button. I wrote a brief description of my change and then sent it into The Ether by clicking the first green button I saw. Off it went. Wheeeeee! My pedantry, embodied in digital form, zipping around the globe. Back in the original repository I saw a fleet of bots spring to life, checking and analyzing everything that was happening. One of the bots noticed I was a first time contributor, and asked me to digitally sign a contribution license agreement. It even gave this helpful guarantee "I promise there's no faxing" which was a nice touch. I was then whisked expertly through a DocuSign process where I gave a website enough details about me that they could prepare the paperwork for this contribution license. It arrived in my inbox a minute later. I signed what I needed to sign, digitally, and was amazed that some team of people, somewhere in the world, had designed this well enough for legal hoops to be jumped in mere moments. This sort of baloney would've eaten up a week, easily, not too many years ago. While I was busy doing the signing, the bots were hard at work verifying everything else, and I noticed from other emails that the bots were now happy, and had decided to forward my pull request onto their human masters. I felt oddly nervous at this point. Battle scars from years of forum administrators shouting that a question has just been asked in the wrong forum, or from bureaucrats rejecting work because form 27B is not filled out in triplicate... a knot formed in my stomach as I prepared for a tiny little rejection, of this tiny little contrib. Shortly thereafter there was a kind response from the original author, who was happy with the contribution, and the deal was done. It was a good feeling, good enough that I felt inspired to write about it, at a time when I do not have time for writing about things. You know me: I usually just take pot-shots at microsoft from afar, and have plenty of fun doing it. [...]



6 different ways to run an asp.net core web application

Tue, 15 Nov 2016 07: 57:26 GMT

Gratuitous self promotion: Joseph Cooney and I will be talking about running asp.net core on Linux, at the upcoming DDD Brisbane conference at 4:05 pm, 3rd of December, less than 3 weeks from now. Now that you've suffered through the advertisement, here's some content. PLEASE tell me if I say anything misleading in what follows... if I'm going to stand in front of people and pretend to be worth listening to, I want some rigorous vetting to occur first. Tell me leon, what are all the ways you can run an asp.net core web site? Well I don't know all the ways, but I do know 6 different ways! Get your head around this lot (even if it requires extra background reading) and you'll understand a lot about how asp.net core sites work. Visual Studio F5 If you're developing an asp.net core website in Visual Studio, then you might run it by pressing F5, for debugging purposes. But that's not the only show in town... Commandline "dotnet run" Your website is really a dotnet console app, that self-hosts a website using a tiny webserver called Kestrel. (There's a lot to unpack in that sentence, but just let it wash over you for now) You can run it, from the console, by calling dotnet run from the folder that contains the project.json file. The output in the console will say something like: Now listening on: http://localhost:2000 So if you then browse to http://localhost:2000, you'll see your website (and the console will show logging info about your visit) dotnet publish → cd bin{...}\publish → dotnet YourProject.dll On your local machine, you can prepare the application for deployment by running "dotnet publish". This builds the application artifacts, does any minification and so forth. If you don't specify where the published results go they will end up in YourProject\bin\debug\netcoreapp1.0\publish If you go into that folder you can run the resulting artifacts by calling: dotnet YourProject.dll Note that you don't call "dotnet run YourProject.dll" -- leave out the run for this one! So the commands in full (starting in the folder that contains the project.json file) dotnet publish cd bin\debug\netcoreapp1.0\publish dotnet YourProject.dll IIS You can host it in IIS. I've never done this and don't intend to. Me and IIS are parting ways for now. But it can be run by IIS. More info here: Publishing to IIS and here: Publishing to IIS with Web Deploy using Visual Studio. Running on Linux, from the console.... "dotnet YourProject.dll" You can grab the artifacts from your local computer's "publish" folder (created in step 3), and copy them onto a Linux machine (using a technique such as SSH, scp, sftp). Then you can run it in the console, exactly the same as step 3: dotnet YourProject.dll (This assumes that you have have .net core installed on that linux machine already, instructions here.) From a different console attached to the same machine, you can view the website by running, for example: curl http://localhost:2000 ...which isn't the most comfortable way to surf the internet. But since our webapp isn't accessible from the open internet, it's about the best you can do at that point. Also, as soon as that first console window is closed, the application will stop. So this is not your final production technique. For that.... Running properly on linux, with supervisor + nginx In Linux you can configure supervisor to run your application (and keep it running). This is analogous to the work that Application Pools do in Windows land. And nginx is a popular webserver, analogous to using IIS on Windows. The two work together to run your application and deliver webrequests to it. You set up nginx to receive requests from the internet an[...]



Have you ever seen the International Space Station?

Sun, 30 Oct 2016 07: 30:54 GMT

The International Space Station is a gigantic space base, the largest artificial object in space, and there are people on board! Real actual people, all the time. Ever since the year 2000 it has been continuously occupied, with anywhere from 3 to 10 people.

It zips around the earth, 350 kilometers above the ground. It moves so quickly (about 30,000 kilometers per hour) that there is no gravity (well, only a tiny bit of gravity) and it completely orbits the Earth 15 times a day (once every 92 minutes... in the time it takes you to watch a movie, that station goes right around the Earth!)

And one of the best things about it is that when the conditions are right, you can see it very clearly from Earth, without using a telescope or binoculars. The best time to see it is just after sunset, when the sky is getting dark but the ISS is up high enough to still catch the sunlight. It can appear far brighter than any other star. It travels from one side of the sky to the other quite quickly, in about 5 minutes.

My 6 year old daughter told me last night, "When I grow up I'm going to be an artist or a scientist, and if I'm a scientist I might get to go up on the ISS." (My ten year old said "Oh suuuure" because she's currently studying for her masters in sarcasm, which some very talented kids receive by age 13).

(image)

If you want to see the ISS for yourself, these are the steps:

  1. Sign up at Spot the Station — and NASA will email you every time viewing conditions are favorable from your location.

  2. Get a smartphone App such as SkyView (SkyView on Apple Appstore, SkyView on Google Play store) which helps you locate astronomical bodies.

  3. When you receive an email from Spot the Station create a reminder to tell you when to go check the sky. For example you might receive an email at 08:00 telling you the ISS will be visible at 19:00 that night. So immediately set a reminder for 18:55, to make sure you don't forget.

  4. At the appropriate time, head outside, and use your app (such as SkyView) to locate the ISS.

  5. Be amazed and filled with awe.

By the way, even if you don't do any of the other steps, you should check out SkyView (SkyView on Apple Appstore, SkyView on Google Play store). It's very handy being able to locate planets, stars etc, and you learn a lot.

And here's an example of the email you get from NASA. It's so succinct that if you don't remember signing up you won't realize what it's talking about:

From: HQ-spotthestation@mail.nasa.gov
26 Oct (1 day ago)
to: me 
Time: Wed Oct 26 7:15 PM, Visible: 6 min, Max Height: 88°, Appears: 11° above NW, Disappears: 15° above SE



Teach kids (and adults) to master algebra with DragonBox

Fri, 22 Jul 2016 07: 24:57 GMT

Lately I've been playing with an app called DragonBox. This game has expanded my mind.

It presents itself as a simple game, with a level structure and game play reminiscent of Angry Birds. The first few puzzles are very easy. Slowly, as the game progresses, new rules and abilities are introduced. And each new rule or ability is oddly specific, maintaining a pleasing kind of symmetry. Every time you solve a puzzle, or master a new ability, there is a satisfying feeling of victory.

Slowly, over many levels the complexity of the rules are increased, but always in a fun and engaging way. And slowly the style and appearance of the elements in the game transform from boxes, critters and dice, until eventually, ever so gradually, they become letters and numbers, and you see that what you have been manipulating all along are equations! Beautiful wonderful equations!

(image)

I found this app because I was playing with Tangle. What is Tangle? Tangle is a tool from Bret Victor for creating 'Explorable Explanations', and somewhere in my reading, someone mentioned DragonBox.

I was playing with Tangle, in order to create this minimum price calculator, as part of that damn book I'm still damn well writing.

(image)

Building a minimum price calculator was a lot of fun. I finally got all of the ideas about costs clear in my head, ten years after writing my actual first product. Costs. Boring, but crucial. I've done what I can to make them fun. Have a play.

Or if you would rather learn algebra than build a product, play with dragonBox instead.




Improvements to the Way MessageBox works, in latest Service Pack for Windows 7, 8 and 8.1

Thu, 07 Jul 2016 17: 06:52 GMT

No doubt you are all familiar with the way the 'System.Windows.Forms' MessageBox behaves in all versions of the .net framework.

For example you type this code:

MessageBox.Show("Please click OK.");

And you get this result:

(image)

With the upcoming service pack for Windows 7, 8 and 8.1, improvements to the System.Windows.Forms.dll mean that the style of messagebox will be altered slightly. The exact same code:

MessageBox.Show("Please click OK.");

Will produce this slightly altered dialog.

(image)

The service pack is being automatically deployed during a forced reboot as soon as you finish reading this sentence.