12 Jun 2015
this years' Apple developer conference has made me reflect again on the strong platform lock-in that Apple has developed. (if you're unfamiliar, lock in refers to a company making it difficult for developers or users to switch to other platforms)
this is behavior i got to see a bit from the inside of Microsoft when i worked there. when they dominated the industry they used that advantage to prevent others from succeeding and consciously trap users and developers into their ecosystem.
last year apple introduced a proprietary graphics API for iOS devices named Metal. this year they announced Metal is now also coming to Macs as the preferred graphics API. its use replaces the industry standard OpenGL. Metal is streamlined for modern graphics processors and eliminates a ton of overhead which is great for performance and battery life. these goals are also addressed though with OpenGL's successor Vulkan.
it's unfortunate that Apple has focused on creating their own platform specific solution instead of embracing the new standard. sure it lets them innovate at their own pace and tailor the API to the specifics of their platforms but it also serves to make things more difficult for developers to simultaneously support non-Apple devices and operating systems. this is a sad change from Apple's embrace of OpenGL which allowed nice code sharing with Android, Linux, WebGL, and Windows.
last year Apple also introduced their own new programming language Swift to replace Objective-C. while Objective-C was already pretty specific to Apple's ecosystem it's really just a bit like some extra macros and libraries on top of the widely supported C language. you can write code in C and build it for pretty much any operating system and device. this year they announced they will open source Swift and support Linux but i still suspect code written in Swift will wind up pretty strongly tied to Apple's platforms and be much more difficult than C to target Windows and Android.
years ago when i switched from Windows to Mac it was quite refreshing to see Apple's use, embrace, and creation of open systems and standards like GCC, LLVM, OpenCL, OpenGL, Collada, sqlite, Unix, WebKit, etc, etc. now it seems as they've risen to dominance they're trending towards more and more proprietary solutions providing strong lock in and making cross platform development increasingly difficult. hopefully Apple's intentions aren't malicious, but it's still a bit disappointing.
09 Feb 2015
last thanksgiving i got my nephews addicted to Bitcoin Billionaire but it seems they've gotten me back now by getting me hooked on Summoners War. these free to play mobile games are dangerous!
it takes hundreds of hours of hard to work to achieve something special and get that nice shot of dopamine from your nervous system rewarding you for a job well done... or you could play one of these games for like 30 minutes. why spend ten years leveling up your coding or drawing or composing skills when you could get to be a wicked cool level 35 5-star awakened fire monster in just a few weeks (or like right away if you throw down some cash)??
they've done a good job capturing the addictive aspect of Diablo (which i think should be called Dopaminecraft to fit with Starcraft and Warcraft). play over and over and over again not because it's fun really or you're doing anything different, but because you're going to see your characters' numbers go up and up and get that occasional epic drop that makes you go WHOOOAAA just because the text is in a different color and the number next to the item is bigger than the last one you got.
it's so sad that this works and our minds are so weak and easily manipulated. exploiting these natural weaknesses for profit (as marketing, sales, advertising, junk foods, sugar drinks, casinos, drugs, and others also do) seems really immoral. still... i'm glad Summoner's War exists and have become pretty attached to my little monsters. i hope people find ways to harness these manipulative powers for good like working in useful education or side effects while playing. or just focus games more on strategy and skill mastery and less on time played and money spent.
11 Jan 2015
i've always wanted to code up and play with some of the texture synthesis algorithms out there since reading the Graphcut paper from Siggraph 2003. i remember thinking it was the coolest thing ever and wondering why it wasn't being used for everything everywhere all the time. back then i found a Gimp plugin that purported to implement it but the results i got with it were absolutely awful.
anyway it came up while chatting with Kirill a few month back and led to me experimenting a bit with image quilting between matches of Hearthstone one sunday. the image quilting paper from 2001 preceded the graph cut stuff and looked much simpler to implement so that's what i decided to try first.
i was hoping to use it to stick together bodies in horrific arrangement like the panoramic fails but i think to get reasonable results you really have to go all the way to graph cuts for that. fortunately i did find something image quilting really excels at: MEXICAN FOOD SYNTHESIS! and so was born INFINIMEX. :)
after the first experiments i upgraded it a bit with laplacian pyramid blending to smooth out sour cream and cheese transitions. (so you might see those are kinda rough on earlier screenshots and vids but better on the later ones)
29 Jul 2014
lots of people have asked me "hey blackpawn, why did you get xbox one instead of PS4, are you stupid?" so, i though it'd explain my reasons here. :)
it's good to support local businesses in your community and i live near Redmond, WA which is home to Microsoft. they employ lots of my friends and neighbors and sponsor some of the radio shows i listen to and other stuff so i want to see them do well. they've made a lot of blunders but i'm voting with my dollars for them to continue supporting games.
there are some things i like about xbone:
- the tv pass through is nice. the xbox channel guide is a lot better than the one my cable box has. (and like 43,000 times faster)
- i like the xbox live achievement system. it's given me extra fun things to do in games and extended my interest in games i was otherwise bored with. trophies on playstation never seemed to do this for me.
- nice range of apps like Twitch, Netflix, YouTube, and web browser. Twitch especially is fun to watch on xbox while coding on the couch.
some things i don't like about it:
- kinect! i wish i hadn't been required to get this thing and it's nice that now you can buy xbox without it. number of times it's done something cool for me: 3 maybe, number of times its done the wrong thing and frustrated me: HUNDREDS!! :P literally one time i said "xbox watch AMC" and it was wonderful as it hopped over to TV and changed the channel properly. i was like whoa this is awesome! never since then has it done this properly. O_o it'll switch to PBS or CBS or ABC or launch the Twitch app or anything but what i asked it for. i try the voice commands first everytime hoping that someday it will work again, but nope just that one time so far for me.
- the controller is uncomfortable. i think my hands are just not shaped properly for the xbone controller. the 360 controller was more comfortable but actually i like the playstation controller design more.
- disappointed that all the fun little arcade games i had for 360 aren't available yet on the xbone. i hope in time these will all be ported or emulated.
17 Jul 2014
i noticed since my last post about my zipper ball i never posted my favorite two versions of it! behold!! :)
14 Jul 2014
once you friend enough people on Facebook or Twitter, checking your feed becomes like drinking from a firehose.
each individual post is fine and they all come from people i'm interested in or care about but accumulated together in one stream it can be overwhelming. Facebook does attempt to solve this by hiding less important things when you check in less often, but unfortunately its filtering seems pretty random and is likely just based on its advertisers interests.
i wonder if the overload problem could be addressed by limiting how many friends or connections you can make based on how fast you keep up with everyone's posts and updates. so if you like to spend a lot of time on Facebook then you get to connect with more people. but if you're not able to keep up then you have to remove some people in order to add any more. this way everyone's feeds could reach a nice equilibrium at a level each person is comfortable with. if someone new wants to connect with you the network can politely inform them that you simply are not allowed any more connections at the moment if you're not able to keep up.
this could make connecting become really meaningful or it could just be a terrible terrible idea. anyway, my apologies for not keeping up on Facebook and Twitter lately. :)
20 Mar 2014
the spring issue of the sketch club zine is now out!! download ittttttttttttt :)