Sometimes I make games. Sometimes I make websites. This is my blog.
Reliable access to information is important. Like electricity, we don’t think about it much until it’s gone.
Just imagine how much harder your daily life would be if you weren’t able to access a given piece of information. Whether it’s because the server is down, workplace firewall rules, or some sort of government censorship, how would you get what you need in order to do your work? Is it even possible?
If you’re a student looking for data for your research paper, or you’re a automotive dashboard designer trying to reduce driver distraction, or you’re a marketer looking for data to analyze customer habits, you need access to quality information that will help you make decisions based on data.
It’s no secret that most academic and non-profit organizations are constantly strapped for cash, often requiring donations or tax breaks just to keep the lights on. While it’s always welcome to donate money, there are other ways you can help out.
Have you ever considered donating a bit of hard drive space to help host academic files for universities? Many of us (myself included) have a home theater computer connected to our living room TV. Whether it’s an old laptop with a broken screen, a Raspberry Pi, or an Intel NUC, we’ve got something that’s available for most of the hours of any given day and has a hard drive that is almost never used.
Why not donate 10 to 15 GB of space to host important and much needed legal torrents?
This is what I’ve started doing. Using Transmission, which is available for free on Linux, Windows, and Mac, you can easily set up a folder to host legal academic torrents.
Worried about it killing your Internet speed or receiving hefty bandwidth bills? You don’t need to be. If you click the little turtle in the status bar, you can set sane speed limits. To not interfere with my Netflix streaming and gaming, I’ve got mine set to low speeds. It won’t be a deluge of data being sent, but just imagine if 50 of us all had these settings, the speed for the files will be fast, because that’s how Torrents work: splitting the file across multiple people to increase speed and reduce the chance of one down server stopping everyone.
Take a look at Academic Torrents to learn more about how you can help out.
UploadVR posted an article this evening about the newest Leap Motion prototype. This paragraph caught my attention:
According to Leap, its goal for the new module is not to package and sell it in Best Buy as the “Leap Motion 2.” Instead, the group wants to work with VR headset manufacturers themselves to integrate the hand-tracking sensor directly.
As much as I love the Oculus Touch and HTC Vive Controllers, accurate hand-tracking in VR is definitely the future. I’m excited not only because of the technology involved, but also because when manufacturers include this in their future headsets, it means that everyone will have it moving forward. We won’t run into another Sega CD / 32X add-on nightmare scenario where our userbase is fragmented between those who have it and those who don’t.
I was very happy to receive this in my inbox the other day. Specifically, it relates to the suit brought against Geocoder.ca by Canada Post over crowd-sourced lists of Canadian Postal codes. Here’s a copy of the email, in its entirety.
This is the final update on the status of Canada Post’s copyright/trademark lawsuit against Geocoder.ca, Ervin Ruci and Geolytica.
Canada Post has discontinued this lawsuit.
The terms of settlement are confidential but our agreed statement is this:
Canada Post commenced court proceedings in 2012 against Geolytica Inc. for copyright infringement in relation to Geolytica Inc.’s Canadian Postal Code Geocoded Dataset and related services offered on its website at geocoder.ca. The parties have now settled their dispute and Canada Post will discontinue the court proceedings. The postal codes returned by various geocoder interface APIs and downloadable on geocoder.ca, are estimated via a crowdsourcing process. They are not licensed by geocoder.ca from Canada Post, the entity responsible for assigning postal codes to street addresses. Geolytica continues to offer its products and services, using the postal code data it has collected via a crowdsourcing process which it created.
While it is unfortunate that it took Canada Post 4 years to come to this conclusion, this turn of events reinforces our long held position that our postal code data is crowd sourced.
As this is the last (mass) email you will receive on this topic, we thank you for your support and wish you all an “open data” future.
To read more about the history of this lawsuit, follow this link.
Ervin Ruci, Geocoder.ca, @geolytica
P.S. All excess donations and/or other funds we have received at the conclusion of this lawsuit, will be donated to those who conducted our legal defense pro bono over the past four years of legal wrangling, with special thanks to the Canadian Internet Policy and Public Interest Clinic (CIPPIC) and RIDOUT & MAYBEE LLP.
I’m glad we can finally put that to rest. Good luck out there, geocoder.ca!
The fact that, by default, the transparent shaders in Unity3d do not work well behind or in front of objects has been a problem for years. Here’s an easy fix that might solve it for you.
That’s it! With any luck, the object with your transparent shader should now appear in front of other game objects which also use a transparent shader.
On my gaming blog, Gameblaster64, in September of 2012 I wrote an article complaining about the lack of risk-taking by Nintendo with regards to games on the Wii U. At that time, the console’s game library was almost entirely movie licenses and Just Dance clones. I gave two examples that came to my head as the type of games I’d love to play but thought Nintendo wouldn’t have the balls to make. Here’s my second idea (the first being a worldwide Animal Crossing game):
Think of the music sequencer from Mario Paint except you build a platformer instead of a song. Hundreds of assets are included (and some sold in DLC packs on the Wii U store) including the ability to place classic Mario characters and items in your levels. Share said levels with your friends and everyone online.
I thought Nintendo would never allow the public to use Nintendo assets for their own games, even in a limited fashion, as it would require them to give up control. Imagine my surprise when I read this article about Super Mario Maker on Wikipedia today:
The game was first announced at Electronic Entertainment Expo 2014 with the name Mario Maker. The game was originally conceived as a tool by Nintendo’s internal development team, to be used only within the company. The team, however, quickly realized the tool’s potential as a game and pitched the idea to senior game designer Takashi Tezuka. Meanwhile, Tezuka had been wanting to make a Wii U followup to Mario Paint that utilizes the Wii U GamePad.
Sometimes, you get what you ask for.
I think most Canadians would agree that it’s fair for Canada Post to charge companies for a list of Canadian postal codes by region, since it does require actual work to organize and maintain that list. What I think most Canadians would disagree on is suing someone for building their own list from scratch, based on people submitting their address and postal code to help out. But, that’s exactly what’s happened to Geocoder.ca, an Ottawa-based mapping firm which supplies the postal codes to free and open mapping services like OpenStreetMap.
From Geocoder.ca’s release:
This is the gist of the matter: Since 2004 we have crowdsourced* the generation of the “Canadian Postal Code Geocoded Database.” When you make a query to geocoder containing for example this information “1435 Prince of Wales, Ottawa, ON K2C 1N5”, we then extract the postal code “K2C 1N5” and insert it into the database that you may download for free on this website.
It’s been nearly 4 years since they’ve been sued and they’re finally going to see their day in court soon.
Download the list of Canadian postal codes by region, released under the Creative Commons Attribution 2.5 Canada License.
The building manager of my apartment was recently fired after a viral video surfaced of him allegedly physically pushing a tenant out of his office. I found it interesting in the same way one does when watching any other train wreck in slow motion. Afterwards, an article was posted on The Record (Waterloo’s local paper) where an IN8 spokesperson, Darryl Firsten, stated:
“This is our 11th building in Waterloo and 10 out of 10 have been done on time, right down to the last blade of grass,” Firsten said.
I live in Sage 3 Waterloo, which is an IN8 development. I can confirm that, when I moved in on May 1st, 2015, it was so unfinished that we didn’t even have blades of grass. Work was being done for weeks after we moved in, including things like laying down sod, putting up fencing, putting furniture in the lobby, insulating pipes in the underground garage, adding locks to the outside doors, actually having a door in some places (rather than just a portal).
We were very lucky that the units themselves were ready. Many tenants of Sage 2 are not so lucky.
I’m a huge fan of Pocket. It’s a read-it-later service that helps relieve some of the pain of losing Google Reader.
What I’m not a fan of is being tracked online.
Pocket has a bookmarklet that lets you save whatever website you’re on to your read-it-later list. I used this happily for months until an odd, compulsory update came along that changed the permissions from read/write access to anything done on only Pocket’s own site to read/write access to every website in Chrome. So, I deleted it, let Pocket know it was a problem via Twitter, and stopped using Pocket. I still loved the service, but without the ability to immediately save a web page to my Pocket, I no longer had exposure to it, and it fell out of my workflow.
That is, until an Internet friend recommended Save to Pocket (mini)! It is an unofficial Pocket Chrome extension that replicates the original bookmarklet’s functionality. Just click it whenever you want to read your current web page later and it goes right into your Pocket. No cross-domain cookies needed. Yay!
Dustin Curtis nails it when he writes about Twitter:
And that leads to me to the final thing I want to talk about, which is also the most important: Twitter has fucked up its platform. Twitter has turned into a place where famous people and news organizations broadcast text. That’s it. Nothing great is Built On Twitter, even though it should be the most powerful realtime communications platform on Earth. There are simply no developer integration features for building stuff on top of Twitter as a platform, and that is absurd and disappointing. The fact that automatic tweets from apps are considered rude is one of the biggest failings of Twitter’s product team–Twitter should be the place for apps to broadcast realtime information about someone. And yet the culture around the Twitter community has effectively banned such behavior because the product doesn’t have features to filter/organize such notifications.
Twitter started off as a content creator’s dream. They had a freely available API and a massive, growing data-set open to anyone with some basic programming skills. That avenue was closed a few years after launch when they bit the hand that fed them and blocked basic API access to successful apps.
While I agree with Mr. Curtis’ overall opinion of the Twitter platform, I’m not convinced Twitter is “the right person for the job.” The service that Twitter provides should be given to the people who contribute to it, like Wikipedia does. The content and the platform should be completely open. Giving this responsibility to one for-profit company is simply a ticking time bomb.
It’s for this reason that I recommend as many interested people as possible look into running or contributing to the GNU Social platform. It’s a federated Twitter-alike service that’s completely open-source. People on one network can follow and reply to people who are on another. Even better is that there’s no 140-character limit!
The first resource pack, Faithful 32×32, a 32 pixel by 32 pixel improvement stays true to the original 16 pixel by 16 pixel art style of Minecraft, has lasted longer than a month, but recently I’ve combined it with the Default-3d Minecraft Texture Pack to give it an extra 3d kick. It looks great and gives some new life to Minecraft. You can, of course, simply run the Default-3d Minecraft Texture Pack with the default 16x textures, but they don’t pop nearly as well as they do when paired with the solid Faithful 32×32.
Take a look.
I’m working in a team for the 2015 NASA Space Apps Challenge and this year, like last year, we’ve run into a billion and a half problems working with Unity3d and git with more than one person. After some searching I found an awesome website that included a gitignore file that seems to do the trick. I’m not trying to rip them off, but I’m incuding the gitignore file here for my own future sanity (and just in case their site goes down).
# =============== # # Unity generated # # =============== # Temp/ Library/ # ===================================== # # Visual Studio / MonoDevelop generated # # ===================================== # ExportedObj/ obj/ *.svd *.userprefs /*.csproj *.pidb *.suo /*.sln *.user *.unityproj *.booproj # ============ # # OS generated # # ============ # .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes ehthumbs.db Thumbs.db
It was a trend during the dark days of the web (read: before html5, when the world required Flash for animations on the web) that designers would create custom, wacky, non-standard navigation elements on their sites in an effort to look more “hip” or “cool.” When you went to any given website that employed this tactic, the first few minutes were spent hovering over icons to figure out what each of them did. This is, of course, after you waited for the website to “load.” This sort of horrible design got so bad that it became known as Flashturbation.
Thankfully, I haven’t seen much of Flashturbation since around the time MySpace died (correlation, not causation, I’m sure).
Still, it crops up from time to time.
Why am I writing about this? I just wanted to call out Red Bull’s website and their decision to break the play button, which has been a dominant design standard since the 1960s. I got halfway down the page before my mouse accidentally hovered over the triangle icon and it was then I discovered that the images were actually videos that could be played.
It’s okay to style an icon. It’s not okay to break it.
As most of our players have noticed, since Minecraft Release 1.8.x, xWarp has been broken. It’s been a mixed blessing: it’s fun to play true, legit survival, but it’s a pain if you want to visit a friend’s build without giving up the ability to warp back home. Until xWarp is fixed (I may have to do it myself), I’ve taken the time to export the warps from their cage in the SQLite database to JSON format. It’s not the easiest to read, but here’s how you can find the X, Y, and Z co-ordinates of your warps:
I run into this situation all the time when working on graphics, 3d models, or converting web wireframes to HTML+CSS: the need to keep a mini snapshot of what I’m mimicking in the same frame as the window that I’m creating it in. Think Picture-In-Picture but for your desktop.
Enter Sticky Previews.
This handy app lets you create an arbitrarily-sized rectangle snapshot from anywhere on your desktop then lets you place and scale that rectangle on another screen or over other work on the same screen. Take a look at a quick 2 frame video showing a Chinese character in my Google Doc then the Sticky Preview in the bottom left of my Blender window. I’ll use this reference to model the Chinese character in 3d.
I purchased Sticky Previews years ago and have used it hundreds of times to speed up my work-flow. If you’re a web developer or designer, I’d definitely recommend it.
There’s a common misconception that mobile is the future of software development. Mobile, in this context, means a touchscreen device like your phone or tablet.
I’m not picking on this particular author — he is simply regurgitating a common assumption — but this is the type of sentiment I’m writing about:
The era of the laptop and personal computer will eventually come to an end, but not until they allow developers and power users to do everything they can on high-end devices as easily on mobile devices. Before this can happen professionals of all sorts, the power users of the various platforms will need as much memory and processing power as they are currently using. (Source: grack.com)
I disagree with this mindset, almost entirely.
I do agree that most software development will happen for mobile devices, but I do not believe that software development will be on mobile devices, at least for quite a while, if ever.
There are two types of users: creators and consumers. The creators among us are the ones who tinker, who take things apart, who build things “just because.” Their needs are entirely different from the consumers, who enjoy having things “just work,” and do not need to know (or want to know) how it does that. Simply, consider the difference between a person who watches a movie and a person who makes a movie.
The problems with being a creator on mobile platforms are not related to the amount of performance we can get from them. Indeed, some of the higher-end tablets are very fast and quite capable of handling software development (my field), at least from a hardware point-of-view. It’s not the performance of mobile hardware, it’s their draconian software licenses and their sick culture of walled gardens which prevent us creators from doing our work.
The number one issue holding software development back on mobile devices is the operating systems which they run. Android, iOS, BlackBerry, and Windows Phone, all require “rooting” before most of the software is even available to a developer. As a developer, I don’t want to work on a device that does not obey my commands, nor do I want to work on one that requires a hack in order to obey my commands. This sort of device might be great for your mom and dad to watch things on, but it’s certainly not designed for creators to build things on.
Right now, the ideal development machine is the one in which I use: a PC laptop, running Linux and Windows. It lets me build anything I want quickly and without hassle. I don’t have to deal with any sort of bogus license agreements or ask for permission to build software for it.
In Canada, cell phones are sold locked to a certain carrier. This means that before you can switch providers, you have to call and pay to have your phone unlocked. Who really owns the phone, then? Can you imagine having to do that for your car if you wanted to buy gasoline at Shell instead of Esso/Exxon? It’s outrageous and a huge overstepping of authority by cell phone providers.
The most exciting parts of building hardware or software come from the freedom to explore, to scratch your own itch, then share that solution with your friends, who will go on to use it and change it to scratch their own itches. Mobile is heading in the opposite direction: locking everything down to keep the technical bits hidden away, and the fun of creation along with it.
There is a place for consumers. After all, the market cap of consumers is many times that of creators. But the place for consumers cannot come at the expense of the place for creators. Maybe the two never meet? Would that be a problem? Is there a solution which solves both needs? Does there have to be?
Until things change course and mobile device manufacturers start selling devices with open and libre software set, including operating system, and offering sane license agreements, this creator will stick with his laptop and Linux + Windows, thank you very much.
Finally got around to updating my version of Notepad++. Was surprised but then delighted by this nugget that types itself out when it restarts:
Freedom of expression is like the air we breathe, we don’t feel it, until people take it away from us.
For this reason, Je suis Charlie, not because I endorse everything they published, but because I cherish the right to speak out freely without risk even when it offends others.
And no, you cannot just take someone’s life for whatever he/she expressed.
Hence this “Je suis Charlie” edition.
Just under a year ago, I wrote an article about how sucky Google Drive was to use. It was specifically about the Windows application, not the web-based interface.
Today, I’m happy to note that, after installing the newest Google Drive application, I’ve noticed that many of my criticisms have been remedied.
This was a biggie for me since my Internet is horribly slow. I already had all my Google Drive files checked out into a folder on my hard disk. The old Google Drive app wouldn’t accept anything but a clean slate then duplicated files instead of overwriting them after I copied them into the new folder. This is now fixed and Google Drive started by comparing hashes of my existing library right after installing. Yay!
If you look at the screencap above, you’ll see the bandwidth settings feature which will let you limit bandwidth used for the Google Drive app. This is REALLY handy when you’d like to do other work while syncing instead of saturating your Internet connection.
I’m super happy about both of these changes.
Is it enough for me to switch back from using BitTorrent Sync for my music and pictures? No. I don’t think anything will bring me back to storing my files in the cloud the way we used to. Edward Snowden changed all that. Still, these are very welcome changes.
What I’m using Google Drive for: publicly storing my Minecraft server‘s world files. Players who want a copy can go to the folder in Google Drive and get them. For this use-case, with these application improvements, the service works close to perfectly.
The only outstanding thing that could be remedied is an easy way to download an entire folder at once, zipped.
Transport Tycoon Deluxe had a profound impact on my life when I was in high school. A friend an I found it in a nested-away folder on one of those pirate-rich, home-burned CDs that contained ripped games and were passed around between classes. At the start, we had no idea what a great game Transport Tycoon was but the graphics were really impressive and the game ran swell on our hardware (a 486SX at 33MHz and a Cyrix MediaGX at 180MHz). Not only were the graphics great, but the music was really catchy, as well. All of us (friends who later became enamoured themselves with the game) found ourselves humming it for months and years after.
I play the music now and again, even years later. It’s classic 16-bit MIDI is music to my ears. Still, I have always wondered what a live band adaptation would sound like.
Some people wonder what the point of Twitter is. I, myself, was one of those people until I realized about two months after joining that A) your experience is directly related to the quality of the people you follow, and B) it gives you direct access to famous people you would have no other way of contacting.
Hey wait! Why not contact John Broomhall about him doing a live band version of the Transport Tycoon!
Game developers and artists in the game development industry frequently guest post on Gamasutra, a blog dedicated to the art of game development. Guess what? John Broomhall wrote a guest post centred about his 20+ year experience in the game soundtrack field and included a little nugget which interested yours truly: a live band adaptation of Transport Tycoon’s soundtrack!
I’d just like to thank Mr. Broomhall for doing this and giving me such enjoyable music to listen to all these years. Also to Twitter for making it possible for us to directly speak to people who have made direct impacts on our lives!
I understand the need for a warning when loading an app for the first time off of the Oculus Share store, etc. but as a developer it’s insanely annoying to have to go through this thing every single time you run your game. So, if you’re working on an Oculus Rift app and you want to get rid of it while you work on it, here’s how to do it in Windows.
1. Create a text file called “oculus3d.reg” with these contents and run it.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Oculus VR, LLC\LibOVR] "HSWToggleEnabled"="1"
2. Open the Oculus VR Config Tool and click on the “Advanced” button underneath the player height field.
3. Check the box confirming you don’t want to see the warning any more.
4. Develop your game faster by being able to save 10 seconds every time you test your game.
For the past few weeks I’ve been on a personal mission to go through each of the games in my Steam library, one by one, and complete all of the achievements in them. This is known on Steam as a “perfect game.” and is listed in your profile page as such. So far, I’ve got one perfect game, but many others are very close. This award is binary, giving the impression that I’ve only played one game out of my list. This means if I have 99/100 achievements, it will not give me a “perfect game.” I have hundreds of games to play so it’s unlikely I’ll ever actually finish this. Still, it’s something fun to do.
If you’re not familiar with the concept of Achievements, think of Scouts badges: you get badges for completing certain actions in a game up and above the basic gameplay. An example might be completing the entire game without dying or finding all of the hidden gems in a level. They don’t directly affect gameplay but provide an interesting meta-game which encourages players to come back (known as replayability) and also gives a sense of completion when you’ve achieved them all.
There is also a listing, on Steam, which shows, per game, what percentage of players have gotten each achievement. For example, here is the achievement listing for a game called Race The Sun, which is a bit like a racing game where you also have to dodge obstacles.
All this is well and good, but who decides what these achievements will be? The game developers themselves. This is where we get into a sort of gray area where, if the achievements are garbage, they actually serve to disicentivize continuing to play the game. Below, I’ll provide a few examples of these “Anti-chievements.”
Hey! You’ve already completed the game but to get this last achievement, you have to rack up some insane amount of hours just to say you did. Let’s say 50 hours? Excellent! This is fun!
There is a game in my Steam library that gives you an achievement once you click your mouse 500,000 times. Let that sink in for a minute.
This one sometimes appears alongside #2 but instead of jumping right to 500,000 clicks, you get achievements at 1000, 10000, 100000, then 500000 clicks. Count ’em: that’s FOUR achievements you get. Just for clicking! Aren’t you happy?
Wizorb is the most notable for this transgression. Part of the game has you rebuild a village over time using the coins you collect during game play. But, after you’ve beaten a large portion of the game, you may realize that there is an achievement for beating the game without rebuilding the town. If you didn’t notice this before you started playing, you would have gotten hours and hours into it, only to have to restart and replay the game again without doing this one thing at the very beginning.
Faerie Solitaire was a fantastic game. The achievements were pretty good, overall, and would appear naturally as you progressed through the game. Still, there were two that most people never got and it’s not because they were bad at the game. They never got them because receiving the achievements were based entirely on random luck.
Essentially, during game play, there is a small chance that an item will drop. That item gives you the two achievements. The only way to get this item is to keep playing the game, even after you’ve long gotten every other achievement and beaten it many times in the hope that maybe you’ll win the lottery.
If you are an indie game developer, please do not make multiplayer achievements for your game until you’ve got a large and thriving online multiplayer community in your game. Many games, even from small developers, will include some sort of “play against other people online” component. The trouble is that indie games tend to not have enough people on during the day for players to actually compete. So, in this case, it’s impossible to get achievements based around the multiplayer component of the game.