- CPMlink: CPMlink is one of the most legit URL shortener sites.You can sign up for free.It works like other shortener sites.You just have to shorten your link and paste that link into the internet.When someone will click on your link.
You will get some amount of that click.It pays around $5 for every 1000 views.They offer 10% commission as the referral program.You can withdraw your amount when it reaches $5.The payment is then sent to your PayPal, Payza or Skrill account daily after requesting it.
- The payout for 1000 views-$5
- Minimum payout-$5
- Referral commission-10%
- Payment methods-Paypal, Payza, and Skrill
- Payment time-daily
- Short.am: Short.am provides a big opportunity for earning money by shortening links. It is a rapidly growing URL Shortening Service. You simply need to sign up and start shrinking links. You can share the shortened links across the web, on your webpage, Twitter, Facebook, and more. Short.am provides detailed statistics and easy-to-use API.
It even provides add-ons and plugins so that you can monetize your WordPress site. The minimum payout is $5 before you will be paid. It pays users via PayPal or Payoneer. It has the best market payout rates, offering unparalleled revenue. Short.am also run a referral program wherein you can earn 20% extra commission for life.
- LINK.TL: LINK.TL is one of the best and highest URL shortener website.It pays up to $16 for every 1000 views.You just have to sign up for free.You can earn by shortening your long URL into short and you can paste that URL into your website, blogs or social media networking sites, like facebook, twitter, and google plus etc.
One of the best thing about this site is its referral system.They offer 10% referral commission.You can withdraw your amount when it reaches $5.
- Payout for 1000 views-$16
- Minimum payout-$5
- Referral commission-10%
- Payout methods-Paypal, Payza, and Skrill
- Payment time-daily basis
- Cut-win: Cut-win is a new URL shortener website.It is paying at the time and you can trust it.You just have to sign up for an account and then you can shorten your URL and put that URL anywhere.You can paste it into your site, blog or even social media networking sites.It pays high CPM rate.
You can earn $10 for 1000 views.You can earn 22% commission through the referral system.The most important thing is that you can withdraw your amount when it reaches $1.
- The payout for 1000 views-$10
- Minimum payout-$1
- Referral commission-22%
- Payment methods-PayPal, Payza, Bitcoin, Skrill, Western Union and Moneygram etc.
- Payment time-daily
- Adf.ly: Adf.ly is the oldest and one of the most trusted URL Shortener Service for making money by shrinking your links. Adf.ly provides you an opportunity to earn up to $5 per 1000 views. However, the earnings depend upon the demographics of users who go on to click the shortened link by Adf.ly.
It offers a very comprehensive reporting system for tracking the performance of your each shortened URL. The minimum payout is kept low, and it is $5. It pays on 10th of every month. You can receive your earnings via PayPal, Payza, or AlertPay. Adf.ly also runs a referral program wherein you can earn a flat 20% commission for each referral for a lifetime.
- Linkrex.net: Linkrex.net is one of the new URL shortener sites.You can trust it.It is paying and is a legit site.It offers high CPM rate.You can earn money by sing up to linkrex and shorten your URL link and paste it anywhere.You can paste it in your website or blog.You can paste it into social media networking sites like facebook, twitter or google plus etc.
You will be paid whenever anyone will click on that shorten a link.You can earn more than $15 for 1000 views.You can withdraw your amount when it reaches $5.Another way of earning from this site is to refer other people.You can earn 25% as a referral commission.
- The payout for 1000 views-$14
- Minimum payout-$5
- Referral commission-25%
- Payment Options-Paypal,Bitcoin,Skrill and Paytm,etc
- Payment time-daily
- Shrinkearn.com: Shrinkearn.com is one of the best and most trusted sites from our 30 highest paying URL shortener list.It is also one of the old URL shortener sites.You just have to sign up in the shrinkearn.com website. Then you can shorten your URL and can put that URL to your website, blog or any other social networking sites.
Whenever any visitor will click your shortener URL link you will get some amount for that click.The payout rates from Shrinkearn.com is very high.You can earn $20 for 1000 views.Visitor has to stay only for 5 seconds on the publisher site and then can click on skip button to go to the requesting site.
- The payout for 1000 views- up to $20
- Minimum payout-$1
- Referral commission-25%
- Payment methods-PayPal
- Payment date-10th day of every month
- BIT-URL: It is a new URL shortener website.Its CPM rate is good.You can sign up for free and shorten your URL and that shortener URL can be paste on your websites, blogs or social media networking sites.bit-url.com pays $8.10 for 1000 views.
You can withdraw your amount when it reaches $3.bit-url.com offers 20% commission for your referral link.Payment methods are PayPal, Payza, Payeer, and Flexy etc.
- The payout for 1000 views-$8.10
- Minimum payout-$3
- Referral commission-20%
- Payment methods- Paypal, Payza, and Payeer
- Payment time-daily
- Ouo.io: Ouo.io is one of the fastest growing URL Shortener Service. Its pretty domain name is helpful in generating more clicks than other URL Shortener Services, and so you get a good opportunity for earning more money out of your shortened link. Ouo.io comes with several advanced features as well as customization options.
With Ouo.io you can earn up to $8 per 1000 views. It also counts multiple views from same IP or person. With Ouo.io is becomes easy to earn money using its URL Shortener Service. The minimum payout is $5. Your earnings are automatically credited to your PayPal or Payoneer account on 1st or 15th of the month.
- Payout for every 1000 views-$5
- Minimum payout-$5
- Referral commission-20%
- Payout time-1st and 15th date of the month
- Payout options-PayPal and Payza
- Clk.sh: Clk.sh is a newly launched trusted link shortener network, it is a sister site of shrinkearn.com. I like ClkSh because it accepts multiple views from same visitors. If any one searching for Top and best url shortener service then i recommend this url shortener to our users. Clk.sh accepts advertisers and publishers from all over the world. It offers an opportunity to all its publishers to earn money and advertisers will get their targeted audience for cheapest rate. While writing ClkSh was offering up to $8 per 1000 visits and its minimum cpm rate is $1.4. Like Shrinkearn, Shorte.st url shorteners Clk.sh also offers some best features to all its users, including Good customer support, multiple views counting, decent cpm rates, good referral rate, multiple tools, quick payments etc. ClkSh offers 30% referral commission to its publishers. It uses 6 payment methods to all its users.
- Payout for 1000 Views: Upto $8
- Minimum Withdrawal: $5
- Referral Commission: 30%
- Payment Methods: PayPal, Payza, Skrill etc.
- Payment Time: Daily
- Short.pe: Short.pe is one of the most trusted sites from our top 30 highest paying URL shorteners.It pays on time.intrusting thing is that same visitor can click on your shorten link multiple times.You can earn by sign up and shorten your long URL.You just have to paste that URL to somewhere.
You can paste it into your website, blog, or social media networking sites.They offer $5 for every 1000 views.You can also earn 20% referral commission from this site.Their minimum payout amount is only $1.You can withdraw from Paypal, Payza, and Payoneer.
- The payout for 1000 views-$5
- Minimum payout-$1
- Referral commission-20% for lifetime
- Payment methods-Paypal, Payza, and Payoneer
- Payment time-on daily basis
- Linkbucks: Linkbucks is another best and one of the most popular sites for shortening URLs and earning money. It boasts of high Google Page Rank as well as very high Alexa rankings. Linkbucks is paying $0.5 to $7 per 1000 views, and it depends on country to country.
The minimum payout is $10, and payment method is PayPal. It also provides the opportunity of referral earnings wherein you can earn 20% commission for a lifetime. Linkbucks runs advertising programs as well.
- The payout for 1000 views-$3-9
- Minimum payout-$10
- Referral commission-20%
- Payment options-PayPal,Payza,and Payoneer
- Payment-on the daily basis
- Wi.cr: Wi.cr is also one of the 30 highest paying URL sites.You can earn through shortening links.When someone will click on your link.You will be paid.They offer $7 for 1000 views.Minimum payout is $5.
You can earn through its referral program.When someone will open the account through your link you will get 10% commission.Payment option is PayPal.
- Payout for 1000 views-$7
- Minimum payout-$5
- Referral commission-10%
- Payout method-Paypal
- Payout time-daily
- Oke.io: Oke.io provides you an opportunity to earn money online by shortening URLs. Oke.io is a very friendly URL Shortener Service as it enables you to earn money by shortening and sharing URLs easily.
Oke.io can pay you anywhere from $5 to $10 for your US, UK, and Canada visitors, whereas for the rest of the world the CPM will not be less than $2. You can sign up by using your email. The minimum payout is $5, and the payment is made via PayPal.
- The payout for 1000 views-$7
- Minimum payout-$5
- Referral commission-20%
- Payout options-PayPal, Payza, Bitcoin and Skrill
- Payment time-daily
Friday, March 29, 2019
*Nhận định bóng đá Colombia vs Anh 1h ngày 4-7-2018: (Nguồn: Vietnamnet)Tam sư đang thể hiện bộ mặt đầy hứa hẹn nên được nhà cái đánh giá ở thế "cửa trên". Tuy nhiên, chạm trán một Colombia biến ảo khó lường, tuyển Anh khó lòng giành chiến thắng trong 90 phút chính thức.
Không được giới truyền thông quan tâm quá mức và đặt nhiều kỳ vọng như mọi năm, điều này giúp thầy trò HLV Southgate thoải mái tâm lý và thi đấu khá tốt tại vòng bảng, tiêu biểu là chiến thắng 6-1 trước Panama.
I first saw Monsters Invade: Oz (MIO) at the GDC Play booth this year. I was drawn to it from the graphics and description of "catching monsters similar to Pokémon." However, like all times I visit a GDC Play booth I find the atmosphere too difficult to stand there and play and really immerse myself in the game that I'm checking out. I don't know if it's the crowds, the music or the fact that I know industry people are standing behind me and watching, but I just can't find myself getting a good opportunity to analyzing the game. I left the demo of the game confused on mechanics or reason of why I'm playing, but I said I'd give it a try when it launched so let's take a look!
What they did right
Art & soundI know this is subjective, but you are reading my thoughts and I really dig the art. The hand drawn characters fit well with the concept of "ink" and the music is just as cool, unique and fun.
The icon is also unique (in a good way). It sticks out against other apps.
Collection mechanicI've been playing Pokémon since it made its debut in '95 so of course I can dig the monster collection mechanics. I often feel like collection mechanics are under appreciated. Look at all the looting systems in hardcore MMO's to the looting mechanics in non-traditional genres like FPS's like the Borderlands series. There's no reason why these mechanics can't also be in used in casual or mobile titles as well.
ModifiersMIO allows players to spend premium currency for permanent and temporary modifiers. The permanent ones are a no brainer, but quickly get too expensive for non-paying players which is a great encouragement to monetize without being pushy. The temporary ones allow players to get a leg up on a battle if they need to. Not pay-to-win because players still need to hit the meters right, but certainly pay-for-competitive-advantage.
|Temporary modifiers before each battle|
Short session friendlyI can fire up the game and have a meaningful experience within maybe ten seconds. This is key for mobile games because you need to remember that some players are playing out of impulsive boredom. They might just be waiting in line somewhere or waiting for their wife to try on cloths. Having a game that can scale with the player's time is the best way to approach game design on mobile. Remember easy to play, difficult to master.
CurrenciesMIO has three forms of currencies; ink, gold bars and books. Players can only purchase gold but in turn can be used to purchase ink or books. Most F2P titles need a dual currency structure and many can benefit from even a third. DragonVale was one of the first games I remember with a third currency and it was the #1 top grossing iPad app of 2012, and #4 top grossing on iPhone. Did the third currency really help them achieve these rankings? I believe so because monetization comes down to sinks and sources within your game. In theory, the more things you allow (or even force) players to purchase then the more valuable the currencies become.
What could be improved
Delay balancingI know F2P games need delay, but there was some serious delay in MIO. Once I burned through the initial ink (which acts in a similar way as energy) I earned maybe 200-some ink per day if I logged in once or twice per day to fill up my dog's "ink." That might sound like a lot, but that only heals my monsters maybe a couple times and I have to heal with almost every battle. As a non-paying player, I can only fight a few monsters before needing to quit. Perhaps this tight of a delay is working for MIO but if that's true then there must be a lot of whales or a lot of paying players.
|608 for a week's worth of waiting|
Compounding delaysNot only do I regenerate ink at a very slow pace, but I need to wait several hours to "train" or revive my monsters. Sure almost all F2P games have delays that measure in hours, but normally you're not hit with that long of a delay right away. First monster I caught took 2 hours to train before I could use him. Second took 6 hours. Players wait just as long for monsters to revive if defeated.
I waited 6 hours and came back to find that when your monster revives, it revives with no health! I didn't have enough ink to heal him so I ran from the battle. Walked around until I encountered anther battle and found out that I can't run anymore either! I then had to wait for other monsters to heal, for ink to regenerate and now I couldn't run. As a player, I did feel like I was getting hassled.
I did find out eventually that you can continue to escape battles if all your monsters are dead. It doesn't do a whole lot of good besides running around the map on a collection quest, but at least I wasn't locked out of the game.
NotificationsThis section is about excessive popups. This section is about excessive popups. This section is about... enough already! I enabled notifications and it was only a matter of hours before I went into my settings to remove the notifications for this game. The fact is some users will uninstall over removing notifications. Leading up to disabling notifications, I was receiving one an hour. There's no logical reason why they should be messaging more than once per day, and even that might be considered borderline too many.
No means no, FacebookThe first time I played the game I was asked to connect with my Facebook credentials. I elected to. The next popup asked me to allow posting to my friends on my behalf. I elected no. Almost every time I've launching the app since, I've been asked to allow posting to my Facebook friends and my answer is and will continue to be NO! I understand there are some really successful games with aggressive Facebook strategies (I'm looking at you Candy Crush) but I don't think it's a good idea for all games to be aggressive. There are factors that will make it more acceptable like audience, genre and current level of success.
QuestingI love to quest. Games like Skyrim are dangerous for me because there's just so much to do. MIO also has quests, but so far they haven't varied much. I either need to pick things up on the map, defeat or catch so many monsters or walk in front of something. I understand that mobile games need more simplicity, but I think this is too simple.
Confusing map graphicsFor anyone who's played a JRPG (Japanese Role Playing Game) you know that you can search pots, open chests or interact with NPCs on the map. MIO has chests but you can't interact with them (even though a closed chest implies you can open it). It has characters on the map (and sometimes they animate) but you can't interact with them. The first time I was playing I was so confused why they were on the map if I couldn't do anything with them. I was especially confused with the little animated mushroom men. I kept tapping on them, or running into them expecting that they did something because they were moving, but nope. Nothing.
|Why can't I open these chests? WHY?|
Battle mechanicsI like how simple it is, but I don't like how repetitive it is. It would've been nice if different monsters had different ways of attacking instead of the same timing meter attack. Another issue I have with the meter is it varies with opponents that I meet and I can't seem to find out why. Is it because certain colored monsters have weaknesses towards other certain colors? Is it per monster and not per color? Does level matter? I can't seem to figure it out and the game never explains why.
Another thing is the computer never misses but I do. It's possible I could never miss as well if I hit the meters right every time, but I can't do that. It makes the missing subject even more frustrating when my monster has low health, I'm out of ink and my ability to continue playing is hinging on being able to hit the center of the meter when it's spinning back and forth at a crazy-fast rate for unknown reasons to the player.
Little Box Apps had a serious advantage against other indies because they were featured by Apple, but if you look at the top grossing charts (below) you can see that MIO has likely hit its peak in revenue.
|Chart publicly available at appfigures.com|
I think the major lesson to take away from this is optimizing before global launch, or if you know a platform has interest or will feature you it's crucial to get the monetization piece of your game nailed down to maximize revenues from such an awesome opportunity.
If you'd like to talk about this or any other games you can find me here at my blog or on Twitter.
For the class I missed in early October while traveling to GameSoundCon, I asked my students to watch some of my videos (linked in the right sidebar) about Leitmotifs in Final Fantasy 7, idée fixe in Super Mario World, and musical form in Super Mario Bros and then answer some questions about what they saw. The class is also a pilot trial of Canvas for UM, so I used that to administer the quizzes while I was away. It worked pretty well, except that-- as least, at of my writing-- it's not possible to have an audio file be an answer in a multiple choice quiz question in Canvas. The tech staff gave me a workaround, but it wasn't as streamlined and didn't allow the level of control I was hoping for. For instance: I want to have the question: "which of these themes is NOT one of the Leitmotifs discussed in the video" where A, B, C, and D are audio files with a maximum of two plays each. Seems basic to me, and I think language teachers would see advantages of this as well. However, not possible. The challenges of modern music teaching...
I tried out a new class on South Park: Stick of Truth that went very much in line with my blog entry about playing the game. I'm thinking more strongly about the connection between my blogging and teaching this semester, and am seeing the powerful connection between the two. Using my blog this way was a big moment for me because it was the first time that I realized my notes here are easy and convenient ways for me to construct lesson plans for game music class. Most of the time, I've got links to the audio and all my notes on the game's audio are collected right here. Super convenient for creating a lecture. Now, even though I enjoyed creating the class, I'm not sure I'll do a SoT class again because the material is racy. Teaching this course is always a balance between finding modern games and franchises that the students know while keeping the material appropriate for the classroom.
We had a photographer come to class to get some pictures for UM's biannual magazine, Muse. (I'll throw the link up once it's out.) VGM will be getting a little publicity in the Winter edition. I asked several members of the class who have created games to show them during the class period so that we could hear and react to their audio. Really an interesting exercise that's valuable for these game creators as they get feedback about their creations, and also for the students in class who have never made a game --and may never-- because they see their peers' creativity and the work that goes into it. Really awesome discussions this day. Also, note to self: brilliant toss to the students regarding the photo op. It's always better to showcase them!
Last week, we covered music games (Parappa, Vib Ribbon, DDR, Guitar Hero, Rock Band, Wii Music, etc) and "live" performance of game audio via YouTube. This took the form of a "party" day where we watched a few videos of Smooth McGroove and other game music covers before seeing a chunk of a Video Games Live concert. I baked cookies for them. 97 cookies for this class! Also encouraged the students to dress up (as is the fashion with game music shows) and a couple of students wanted to take a picture with me afterward as we were all Zelda related.
This Tuesday I did an in-class tutorial about creating audio with GarageBand. Not that GB is the greatest software, but it's prevalent, free, and user friendly. Also, it's fairly common for students to have used GB either through their own experimentation or in a high school music class. Experience tells me that some will use other software: Logic, Ableton, ProTools, and FL Studio come to mind as professional level tools some serious music lovers in class will learn/already know. I've also had students work with an online chip tune music program, or a DS music maker and these work just fine too. My point in asking the students to create game audio is in part to realize that game audio can be anything. New theme songs for Pac-Man? Great. Beach Boys sound-a-like to avoid licensing fees for BioShock 7? Awesome. Get creative.
Tomorrow we'll have our last Skype conversation of the semester with Alexander Brandon. It's awesome to talk with a game composer at the point when the students are thinking about their own projects. I know the discussion will be great. Really looking forward to it.
Thursday, March 28, 2019
Posted by Kacey Fahey, Developer Marketing, Google Play
We're excited to be part of the Game Developers Conference (GDC) 2019 in San Francisco. Join us on Monday, March 18th at the Google Mobile Developer Day, either in person or over live stream, for a full day of sessions covering tools and best practices to help build a successful mobile games business on Google Play. We'll focus on game quality, effective monetization and growth strategies, and how to create, connect, and scale with Google.
This year's sessions are focused on tips and tools to help your mobile game business succeed. Come hear our latest announcements and industry trends, as well as learnings from industry peers. We will hold a more technical session in the second half of the day, where we'll share ways to optimize your mobile game's performance for the best possible player experience.
Also, make sure to visit the Google booth from Wednesday March 20th until Friday March 22nd. Here, you will be able to interact with hands-on demos, attend talks in the theater, and get your questions answered by Google experts. We're bringing a big team and hope to see you there.
Learn more about Google's activities throughout the week of GDC and sign up to stay informed. For those who can't make it in person, join the live stream starting at 10am PST on Monday, March 18th. These events are part of the official Game Developers Conference and require a pass to attend.
How useful did you find this blog post?
--Supreme Intelligence, Captain Marvel
Far from being the misandrist and gratuitous movie some fallaciously expected, Captain Marvel is a largely excellent film that both stands well on its own and integrates well into other MCU entries. With connections to the first Avengers film, Infinity War, and Endgame, Captain Marvel definitely ties into important franchise plot points--but never in ways that detract from its own script. Its tone is far more consistent than that of many other fairly recent MCU offerings, despite featuring plenty of comedy, drama, and action, and it becomes clear early on that the relationships and development of the central characters are its greatest strength. It only took 14 years for Marvel to release another female-led superhero film following Elektra, but the results are fantastic.
The occasional strange CGI shot (like when Carol is falling before she triggers her flight ability) fails to poison the usual effectiveness of the colorful visuals. After the use of some duller aesthetics near the beginning, vibrant colors become more and more prominent, especially once Carol Danvers learns the full extent of her powers. As for Danvers, internet trolls who expected Brie Larson to be incapable of giving a fitting performance were mistaken in their assumptions (when the hell are people going to stop pretending like they can know a film's quality before its release?). Her demeanor naturally changes from stoic to comedic to depressed when needed. Danvers' arc isn't about a significant transformation of her character, like with Wonder Woman or Iron Man, but is instead one about self-discovery.
Many of Brie's greatest moments, though, are not the ones where she displays her incredible powers or learns crucial information about herself; her greatest moments are the ones where she interacts with Samuel L. Jackson. The best aspect of the movie by far is the relationship between Carol and Nick, which is realized with superb writing and with great acting on the parts of both Larson and Jackson. In fact, Fury's lines give him the opportunity to show a side of the character that is more playful and friendly than anything he has revealed elsewhere in the MCU.
Offering a great performance of his own, Ben Mendelsohn proves himself to be a standout actor, playing the Skrull representative Talos with a gravity that still allows for instances of humor. Many of the supporting characters are utilized excellently, and the imbecilic fears that Captain Marvel would use its titular hero in a way that degrades the male characters were completely unfounded. The script incorporates multiple strong male and female characters without ever pitting one gender against the other. Lastly, the soundtrack for the film is superior to many of the mediocre, generic scores for other MCU movies. With exceptions like The Incredible Hulk, most Marvel movies from 2008 onward have been accompanied by very lackluster soundtracks, but Captain Marvel's sets itself apart from the others, with an appropriate emphasis on the techno genre that fits into the science fiction atmosphere very well. The use of actual songs is also noteworthy!
After being captured by a shapeshifting alien race known as the Skrulls, Vers, a member of warrior society called the Kree, escapes her confinement only to struggle with seemingly suppressed memories. Her escape leads her to Earth, where a young Nick Fury works on behalf of S.H.I.E.L.D. Vers hopes to return to her fellow Kree soldiers, who hope to prevent a Skrull takeover of the earth.
The Skrull already have a presence on the planet, however, and the true nature of the Kree-Skrull war is far more morally ambiguous than Vers initially thinks. Vers discovers that she actually was a native of Earth, Carol Danvers, before she was taken by the Kree and trained to be a talented warrior, forced to question her allegiance to her faction in light of the new information. The Tesseract and Ronan the Accuser make appearances, all of which provide context for later events of the MCU.
The script lightly touches upon epistemic issues involving memory, but no philosophical theme is developed beyond a superficial level, unlike with Doctor Strange.
Captain Marvel is one of the MCU's best "origin" stories--it is more of a partial origin story, since the movie opens long after Carol obtains her powers--blending comedy, characterization, and lore significance into a mostly coherent whole. It has some sporadic flaws, but the overall product is exactly what the MCU should be delivering at this point. There is a sense in which Captain Marvel is intended to excite fans for Endgame, yet it also remains a great standalone film that celebrates the rich cinematic history of the MCU--plus, it stands alongside Wonder Woman as one of the only superhero movies directed or, in this case, co-directed by a woman! I eagerly await the return of Carol Danvers in Endgame! Thanos' days are numbered.
1. Violence: There are plenty of fights involving fists, energy blasts, and weaponry, though blood is only seen on some occasions. Nothing shown onscreen is graphic.
2. Profanity: Variations of "shit" are used twice, with other minor expletives scattered throughout.
Wednesday, March 27, 2019
Guildhall was published in 2012 by AEG, and was designed by Hope S. Hwang. It's primarily a set collection game, except each set has a special ability you can invoke. There are only 6 sets in the game, and their abilities delicately play off one another. The first player who completes enough sets to earn 20 points is the winner. But for more detail, lets get into the rules summary.
Read more »
Tuesday, March 26, 2019
This weekend I worked on something fairly practical: I have way too many physical documents strewn around. Searching through them to find stuff sucks. Organizing them sucks even more, because I'm too lazy to ever do it. And, of course, even paper that organized itself automatically would suck, because it's paper. I hate paper.
So, I resolved to scan everything, and then somehow organize it electronically.
Step 1: Obtain Scanner
Technically, I already had a scanner. But, it was a flatbed scanner which I would have to manually load one page at a time. Obviously, for this task I would need an automatic document feeder. And, of course, the scanner would have to work in Linux. So, I headed to Fry's to look at the selection with the SANE supported device list loaded up on my phone.
Unfortunately, when I got to Fry's, I discovered that there is a bewildering array of different scanners available and practically no documentation on the advantages and disadvantages of each. You'd think they'd list basic things like pages-per-minute or the capacity of the document feeder, but they don't. And since I inexplicably get no phone reception in Fry's, I really had no basis on which to make a decision.
After staring at things for a bit, I was approached by one of the weirdos that works there (I swear almost everyone who works at Fry's gives me the creeps). For some reason I decided to try asking his opinion.
Canon PIXMA MX870: FAIL
The guy looked at the list on my phone and said "What do they have for Canon?". After looking down the list, he saw the Canon PIXMA MX860 was listed as being fully supported. He pointed out that the MX870 is now available, and is a very popular unit. 870 vs. 860 seemed like it ought to be a minor incremental revision, and therefore ought to use the same protocol, right? Being at a loss for what else to do, I decided to go with it. Dumb idea.
Things looked promising at first. Not only did Sane appear to have added explicit support for the MX870 in a recent Git revision, but Canon themselves appeared to offer official Linux drivers for the device. Great! Should be no problem, right?
First I tried using Canon's driver. It turns out, though, that Canon's driver requires that you use Canon's "ScanGear MP" software. This software is GUI-only and fairly painful to use. I really needed something scriptable. The software appeared to be an open source frontend on top of closed-source libraries, so presumably I could script it by editing the source, but I decided to try SANE instead since it already supports scripting.
Well, after compiling the latest SANE sources, I discovered that the MX870 isn't quite supported after all. It kind of works, but after scanning a stack of documents, the scanner tends to be left in a broken state at which point it needs to be power-cycled before it works again. I spent several hours tracing through the SANE code trying to find the problem to no avail: it appears that the protocol changed somehow. SANE implemented the protocol by reverse-engineering it, so there is no documentation, and the code is only guessing at a lot of points. Having no previous experience with SANE or this protocol, I really had no chance of getting anywhere.
OK, so, back to the Canon drivers. They are part-open-source, right? So I figured I could just replace the UI with a simple command-line frontend. Guess again. It turns out the engineers who wrote this code are completely and utterly incompetent. There is no separation between UI code and driver logic. The scan procedure pulls its parameters directly from the UI widgets. The code is littered with cryptically-named function calls, half of which are implemented in the closed-source libraries with no documentation. The only comments anywhere in the code were the kind that tell you what is already plainly obvious. You know, like:
/* Set the Foo param */ SetFooParam(foo_param);
I gave up on trying to do anything with this code fairly quickly. But, while looking at it, I discovered something interesting: the package appeared to include a SANE backend!
Of course, since the package came with literally no documentation whatsoever (seriously, not even a README), I would never have known this functionality was present if I hadn't been digging through code. It turns out that the binary installer puts the library in the wrong location, hence SANE didn't notice it either. So, I went ahead and copied it to the right place!
And... nothing. When things go wrong, SANE is really poor at telling you what. It just continued to act like the driver didn't exist. After a great deal of poking around, I eventually realized that the driver was 32-bit, while SANE was 64-bit, thus dlopen() on the driver failed. But SANE didn't bother printing any sort of error message. Ugh.
So I compiled a 32-bit SANE and tried again. Still nothing. Turned out I had made a typo in the config that, again, was not reported by SANE even though it would have been easy to do so. Ugh. OK, try again. Nothing. strace showed that the driver was being opened, but it wasn't getting anywhere.
So I looked at the driver code again. This time I was looking at the SANE interface glue, which is also open source (but again, calls into closed-source libraries). I ended up fixing three or four different bugs just to get it to initialize correctly. I don't know how they managed to write the rest of the driver without the initialization working.
With all that done, finally, SANE could use the driver to scan images! Hooray! Except, not. I scanned one document, and ended up with a corrupted image that showed two small copies of the document side-by-side and then cut off in the middle.
HP Officejet Pro 8500
I returned the printer to Fry's. They didn't give me the full price because I had opened the ink cartridges. Of course, the damned thing refused to boot up without ink cartridges, even though I just wanted to scan, so I had no choice but to open them. Ugh.
Anyway, this time I came prepared. The internets told me that the best bet for Linux printers and scanners is HP. And indeed, my previous printer/scanner was an HP and I was impressed by the quality of the Linux drivers. So, I looked at what HP models Fry's had and took the cheapest one with an automatic document feeder. That turned out to be the 8500. It was about twice the cost of the Canon but I really just wanted something that worked.
And work it did. As soon as the 20-minute first boot process finished (WTF?), the thing worked perfectly right away.
Step 2: Organize scans
The scanner can convert physical documents into electronic ones, but then how to I organize them? Carefully rename the files one-by-one and sort them into directories? Ugh. I probably have a couple thousand pages to go through. I need something that scales. Furthermore, ideally, the process of sorting the documents -- even just specifying which pages go together into a single document -- needs to be completely separate from the process of scanning them. I just want to shove piles of paper into my scanner and figure out what to do with them later.
As it turns out, a coworker of mine had the same thought some time ago, and wrote a little app called Scanning Cabinet to help him. It uploads pages as you scan them to an AppEngine app, where you can then go add metadata later.
The code is pretty rudimentary, so I had to make a number of tweaks. Perhaps the biggest one is that there is one piece of metadata that really needs to be specified at scan time: the location where I will put the pile of paper after scanning. I want to take each pile out of the scanner and put it directly into a folder with an arbitrary label, then keep track of the fact that all those documents can be found in that folder later if necessary. Brad's code has "physical location" as part of the metadata for a document, but it's something you specify with all the other metadata, long after you scanned the documents. At that point, the connection to physical paper is already long gone.
So, I modified the code to record the batch ID directly into the image files as comment tags. I also tweaked various things and fixed a couple bugs, and made the metadata form sticky so that if I am tagging several similar documents in a row I don't have to keep retyping the same stuff.
Does this scale?
I haven't started uploading en masse yet. However, I have some doubts about whether even this approach is scalable. Even with sticky form values, it takes at least 10 seconds to tag each document, often significantly longer. I think that would add up to a few solid days of work to go through my whole history.
Therefore, I'm thinking now that I need to find a way to hook some OCR into this system. But how far should I go? Is it enough to just make all the documents searchable based on OCR text, and then not bother organizing at all? Or would it be better to develop at OCR-assisted organization scheme?
This is starting to sound like a lot of work, and I have so many other projects I want to be working on.
For now, I think I will simply scan all my docs to images, and leave it at that. I can always feed those images into Scanning Cabinet later on, or maybe a better system will reveal itself. NeatWorks looks like everything I want, but unfortunately it seems like a highly proprietary system (and does not run on Linux anyway). I don't want to lock my documents up in software like that.
This originally started out life as a Dangermouse themed arcade adventure, but the subject matter soon changed following the fallout from the Smurfgate saga.
The change has brought with it a set of never before seen characters and environments, and a new mascot to the Amiga platform, Dylan The Spaceman.
Created by Chris Clarke, who is using the Reality construction system, Dylan The Spaceman is a Dizzy-style arcade adventure, where objects collected in one location are used to progress in another.
Chris has been dishing out regular progress updates for the project on his active Amiga PD Facebook page. Here you can check out all the latest work in progress screenshots along with developer notes Chris uploads.
Development of the game seems to be progressing well, and at present the game is pencilled-in for a Summer 2015 release. Chris is keen to get the game up and running on as many Amiga platforms as possible, and a work in progress version has already been successfully tested on the CD32 games console.
This really looks like a game to keep an eye out for, and could be one of the Amiga gaming highlights of the year.
I'll have further updates on Dylan The Spaceman as and when they surface.
It's a pop-up, and since we know most of you are tuning in from far away, we wanted to give you a behind-the-scenes tour of our temporary digs. In the video below, you'll see how YouTube isn't just a place for watching random videos, but a community where people congregate for music, fitness, food, culture, and so much more.
See if you can spot some guest appearances from The Fitness Marshall and Laura in the Kitchen, too!
— The YouTube Team