- 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
- 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
- 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
- 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. - 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. - 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.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
- 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
Friday, March 29, 2019
10 Highest Paying URL Shortener to Earn Money Online
Under $600 Gaming PC Build For November 2016
Under $600 November 2016 PC Build
Hardware Link | Price | Image | |
---|---|---|---|
Estimated Price: | $585 (November 2016) | ||
Processor | $118.00 | ||
Motherboard | Asus ATX DDR4 Motherboards H170-PRO/CSM | $96.99 | |
Graphics Card | ASUS ROG STRIX Radeon Rx 470 4GB OC Edition AMD Graphics Card with DP 1.4 HDMI 2.0 (STRIX-RX470-O4G-GAMING) | $199.00 | |
RAM | Kingston HyperX FURY Black 8GB Kit (2x4GB) 2133MHz DDR4 Non-ECC CL14 DIMM Desktop Memory (HX421C14FBK2/8) | $39.99 | |
SSD | SK Hynix Flash Memory 2.5" 120 GB Internal Solid State Drives HFS120G32TND-N1A2A | $39.99 | |
Power Supply | EVGA 500 W1, 80+ WHITE 500W, 3 Year Warranty, Power Supply 100-W1-0500-KR | $35.99 | |
Computer Case | Rosewill CHALLENGER ATX Mid Tower Gaming Case with 3 Pre-Installed Case Fans , USB 3.0 Port | $49.99 |
Overview: Under $600 Gaming PC Build
Source: http://newbcomputerbuild.com/newb-computer-build/november-2016-gaming-pc-builds-under-600-1000-1500/#entry
Fresh 5 Cash Trick 25 Feb 2019 Still Working By AZEEM ASGHAR
Thursday, March 28, 2019
In-depth List Of All Driver Settings.
First up is the "sensitivity" variable. In povohat's readme for the driver, he writes, "if your intention is to replicate your existing QL mouse settings, set this value to your in-game sensitivity and continue to use this sensitivity value in-game." It technically multiplies the sensitivity into the driver before acceleration calculations happen, and then divides it out after the calculations are done. Simply put, keep sensitivity at 1 unless you are coming from Quake Live.
The "Acceleration" variable controls how quickly the mouse sensitivity will go up. Pretty straightforward - the closer to 0, the closer to "no accel/flat sensitivity." It's dependent on your mouse DPI and USB refresh rate, so keep that in mind when changing your hardware/mouse software around. Also note that the Pre-Scales and Post-Scales will change this too! There is an option in the GUI dropdown "Settings" menu that allows you to scale acceleration to maintain the same slope when changing post-scales and pre-scales. I highly recommend checking those options once you have an accel curve that you like.
"Sensitivity Cap" is the glorious variable that determines where acceleration stops kicking in. It's a multiplier of your base sensitivity (post-scale and pre-scale variables), so a cap of "2" means that accel will only double your sens from its slowest. If you want to maintain muscle memory for flicks, you'll want to scale the sensitivity cap with post-scales and pre-scales too (Settings dropdown in the GUI).
"Speed Cap" is a gimmick. I say this because I specifically asked povohat to add it :). If you've ever been in a game with a vehicle that limits you from turning too quickly, that's what the speed cap feels like. I asked for it to see if you could use it to get perfect turning rate circle jumps in Quake. It's really not that useful though.
"Offset" determines how long it will be until mouse acceleration starts to kicks in. You can effectively make the sensitivity flat (no accel) for a short period of time, then let the accel raise it up after that threshold is met. This is nice in theory, but I found that having an offset made it difficult to get used to small changes in the curve. I keep mine at 0, but if you have a curve with a non 0 value that you are happy with, that's quite fine.
"Power" determines the exponent of the curve. If you set it to 2 (the default), acceleration is linear. If you set it to 3, you have a parabola. Personally, I like linear accel, but I did try stuff like 2.5 for a while and enjoyed it. Similar to the offset, I found straying from the default made it harder to adjust to small changes to your accel curve, but there's nothing fundamentally wrong with using non standard values.
"Pre-Scale X"/"Pre-Scale Y" is a flat multiplier on top of everything (separated into horizontal and vertical mouse movements), but it occurs before the acceleration and offset calculations. Changing this has a tendency to change a few other things inconveniently... I recommend using the next values:
"Post-Scale X"/"Post-Scale Y" is what you will change to affect your starting sensitivity before the acceleration kicks in. It also impacts the other variables you will be changing, but not as dramatically as the Pre-Scales, and as seen above there are options to make the important variables scale with changes to your Post-Scale X value. The X value is for left/right, Y is for up/down. If you want to have your horizontal sensitivity the same as your vertical sensitivity, there is a check box under settings to lock Y to X.
"AngleSnapping" allows you to make mouse movements that are close to a right angle be snapped to a right angle - basically it lets you draw horizontal and vertical lines with your mouse easier. I haven't found much use of it in FPS games, so I keep mine at 0.
"Angle" is a rotation of the initial mouse movement before any other calculations are performed. It is there to correct for any oddly placed mouse sensors. If you move your mouse perfectly left/right on your mousepad and see that it isn't moving perfectly left/right on screen, you might want to tweak this value.
Heroin Hero
heroin hero
FuCAblE | Video MySpace
Guarda la puntata di south park in italiano cliccando QUI
watch the south park's episode "guitar queer o"
Broken Sword: The Smoking Mirror - Remastered (PC)
Developer: | Revolution | | | Release Date: | 1997 | | | Systems: | Win, OS X, iOS, Android |
Looking back over the games I've played for my site over the last seven years, I've noticed a pattern forming: I've played a horror game for Halloween on every odd-numbered year, while even-numbered years have gotten games like Snake's Revenge and Saints Row IV at the end of October instead. Seems to me that I've got a bit of a tradition forming here... but I despise pointless traditions, so this year on Super Adventures I'm breaking the pattern by playing Broken Sword: The Smoking Mirror - Remastered! I don't think I'll be seeing any ghosts or zombies in this one.
I'm torn here, because I really want to call it Broken Sword II, but there's clearly no 'II' in that logo up there. There was in the original game's logo, but they've taken it away for the Remastered version, because I guess knowing what order things go in only confuses modern audiences. Personally, I'm more confused by the subtitle. Is it referring to a mirror that's recently been used as a murder weapon? A mirror people that go out to when they fancy a quick smoke?
Wait, I forgot to mention that I'm playing the game on Halloween because it was released on October 31st, 1997, the same day as Curse of Monkey Island and the Blade Runner adventure game, so all three are twenty years old today! Well okay, technically this is only seven years old because I'm playing the Remastered version on Steam. I would've played my original CD version but I've lost it. I've checked shelves, I've checked boxes, I've checked other boxes buried underneath boxes, and it seems like the bloody game's just vanished.
Funny thing is, when I bought the game the discs were already damaged and some of the video files wouldn't copy when I installed it. Fortunately, when ScummVM came out there was a compatibility problem with the video codec so Revolution put revised cutscene files up for free and I could finally play this game I'd owned for years! I actually still have that install on my hard drive ready to go, but I lost half the files in a hard drive failure and now ScummVM won't even recognise it.
It's like fate doesn't want me to play this game, and it doesn't care how much physical storage media it has to break to keep me from it.
Read on »
Wednesday, March 27, 2019
The Seventh Link: Summary And Rating
The game manual featured some fairly modest hand-drawn art. |
Date Started: 16 December 2018
In some ways, The Seventh Link is the quintessential 1980s RPG. It offers a framing story with more detail than appears in the game itself, sticks the player in a large world that the player has to map if he's to make any progress, and features a lot of combat. In mechanics, it's as good as any of the early Wizardries or Ultimas.
Unfortunately, Link was the last game I encountered before leaving the 1980s, and I'd just spent a decade mapping featureless dungeon corridors. It's not its fault that it's last; that's just the way it happened. And by the time I got to Link, I just couldn't do it anymore. I couldn't--I can't--play a game that's just a few dozen 20 x 20 dungeon levels full of combats. The Bard's Tale and its derivatives drained that battery.
I never figured out anything to do with the pillars. |
This is the 90s, and gamers are demanding more interesting content in their game worlds. We want NPCs, special encounters, puzzles, and other features in those dungeons, at regular intervals. We've decimated forests in our consumption of graph paper; we're ready for automaps. Ones that don't require us to find a spell first.
Despite investing a fair number of hours into the game, I really didn't accomplish much. I explored the surface of Elira, visited each of its towns to assemble a party, and mapped 4 of 13 levels of one dungeon. There were at least 9 more dungeon entrances on Elira alone, some of which would have taken me to teleporters to three other planets and their own towns and dungeons. I would have found a final party member, a female ranger named Starwind, on the planet Dulfin. Others dungeons would have led me to power packs and the places where I needed to install them to save the planet. I still don't know where I was to find the other spells. From hints in an old disk magazine, I learned that the maximum character level is 25 (my main character reached 8) and that one of the planets has a store where you can buy potions that increase attributes, serving in the role of Ambrosia from Ultima III.
One of the few lines from an NPC. Alas, I will probably never explore Selenia. |
My GIMLET is naturally based on an incomplete picture of the game:
- 4 points for the game world. The sci-fi origin story is fairly original, and well-told in epistolatory fashion, although it fails to explain a number of aspects of the world (e.g., why are there settlements on other planets). While the player's role is somewhat clear, it's less clear where he came from, how he got started on this path, and whether he understands his role.
- 3 points for character creation and development. The selection of races and classes is familiar but not entirely derivative. There's nothing special about character creation or the development and leveling process, but they're reasonably rewarding. I don't know if the level cap would have caused any issues or if you finish the game well before reaching it.
- 3 points for NPC interaction. The game has a better system than it uses. You learn a few things from NPCs, but there are hardly any NPCs that say anything to you. Expanding that number would have resulted in a richer, more engaging world. I do like the Ultima IV approach to assembling your party by finding members in the towns.
- 2 points for encounters and foes. The monsters are mostly derivative of other games (though I like the explanations for their names here: the ship that populated the planet had Tolkien fans on it), and I didn't really experience other types of encounters.
- 4 points for magic and combat. The tactical combat screen is about as good as Ultima III, but with fewer spells.
On Level 3 of the dungeon, I met an enemy called "Floating Stars." |
- 3 points for equipment. You can get melee weapons, missile weapons, armor, and adventuring equipment like torches and keys. Various sites hint at more advanced items like rods and gems of seeing. The selection of stuff is a little paltry in the traditional Ultima style.
- 5 points for the economy. It lacks a certain complexity, but money is certainly valuable. You almost never have enough keys, for one thing. Healing, torches, equipment, and leveling up consume gold fast, and it sounds like the shop on Dulfan would have served as an endless money sink for any extra you could accumulate.
- 2 points for a main quest with no side-quests or quest options.
- 4 points for graphics, sound, and interface. Almost all of that is for the interface. It adopts the Ultima standard of one key per action, which ought to have been mandatory as far as I'm concerned. Graphics are functional but sound sparse.
I never quite got used to the perspective. That lava square is only one square in front of me. |
- 2 points for gameplay. It gets a bit for nonlinearity and a bit more for the moderate-to-challenging difficulty. But it's not very replayable and it's way, way, way, way too big and too long.
That gives is a final score of 32, which is hardly awful for the era. It's actually the highest score that I've given to the platform. The only things that stop me from finishing it are the number of hours it will take and the number of other games on my list.
The Georgetown, Ontario-based Oblique Triad was a mail-order developer and publisher, co-founded by Jeff Noyle and Dave Triggerson. The name referred to the decorative bars on the top of a Color Computer. Mr. Noyle used to host a page (available now only on the Internet Archive) with links to their games, which included a pair of graphical adventures called Caladuril: Flame of Light (1987) and Caladuril 2: Weatherstone's End (1988); a strategy game called Overlord (1990); an arcade game called Those Darn Marbles! (1990); and a sound recording and editing package called Studio Works.
Caladuril, the company's first game, is a decent-looking graphical adventure. |
With the Color Computer in serious decline by 1990, Oblique Triad shifted its focus to specializing in sound programming, and both Noyle and Triggerson have associated credits on Wizardry VI: Bane of the Cosmic Forge (1990) and Wizardry: Crusaders of the Dark Savant (1992). I haven't been able to trace Triggerson from there, but Noyle got a job at Microsoft in 1995 working on Direct3D, DirectX, and DirectDraw and remains (at least according to his LinkedIn profile) there today. He also has a voice credit for a Skyrim mod called Enderal: The Shards of Order (2016).
Mr. Noyle was kind enough to not only comment on one of my entries, but to take the time to create overworld maps to speed things along. I'm sorry that it wasn't quite enough, but every game that I abandon stands a chance of coming back when circumstances are different, and I'll consider trying this one again when I feel like I'm making better progress through the 1990s.
Tuesday, March 26, 2019
Spider-Man: The Amazing Collection (2012-2014) [MULTi6 + All DLCs] For PC [14.1 GB] Full Repack
• Explore and take on the villains in a more expansive Manhattan cityscape than the previous Amazing Spider-Man.
• Play as Peter P. Spider-Man's Citizen alter-ego persona as you investigate the motivations of multifaceted villains.
• New wide cast of the Spider-Man universe, and Movie villains, each with their own unique boss battle encounters.
• New abilities Expanded fastpaced combat moves bring players up close and personal as Spidey takes down foes.
• New web-swing mechanic Includes expanded web-shooter capabilities that allow you to freeze, and blow up items.
▪ The Amazing Spider-Man – Lizard Rampage Pack
▪ The Amazing Spider-Man – Stan Lee Adventure Pack
▪ The Amazing Spider-Man – Oscorp Search and Destroy Pack
▪ The Amazing Spider-Man 2 – Black Suit
▪ The Amazing Spider-Man 2 – Iron Spider
▪ The Amazing Spider-Man 2 – Electro-Proof
▪ The Amazing Spider-Man 2 – Spider-Man Noir
▪ The Amazing Spider-Man 2 – Cosmic Spider-Man
▪ The Amazing Spider-Man 2 – Ends of the Earth
+ optional during setup: Resolution + Launcher + Win8/Win10 fixes
♢ Click or choose only one button below to download this game.
♢ You need μTorrent program to download torrent files, download here.
♢ View detailed instructions for downloading and installing the game here.
♢ Use 7-Zip to extract RAR, ZIP and ISO files. Install PowerISO to mount ISO files.
(Your PC must at least have the equivalent or higher specs in order to run this game.)
• Processor: Intel Core 2 Duo 2.6 GHz / AMD Athlon 64 X2 3800+ or equivalent
• Memory: at least 3GB System RAM
• Hard Disk Space: 20GB free HDD Space
• Video Card: Nvidia GeForce 285 GTX or AMD Radeon HD4830 or better graphics card
FreeBSD Desktop
Introduction
This weekend I build myself a FreeBSD desktop. Notably, it runs Chrome (or rather, Chromium) flawlessly and supports Flash video (HD, full screen, full audio, no stuttering). Furthermore, it turns out KDE 4 is a beautiful desktop environment which I really enjoy using. I totally didn't expect this to turn out as well as it did.
Motivation
I originally had a coding project in mind for this weekend. However, when I sat down on Saturday to begin work, I was immediately confronted by an annoying fact: I hate coding on Mac. This is mostly for little reasons: the home and end keys uselessly scroll to the top or bottom of the document rather than move to the beginning or end of the line; ctrl+left/right does what home and end are supposed to do, rather than skipping forward or back by one word; pgup/pgdn move the view but not the cursor; GUI hotkeys all use "command" instead of "control" but terminal apps still revolve around "control"; etc. Some of these things can be partially mitigated by configuration, but not completely -- the command/control inconsistency is a stubborn one that isn't fixed by merely swapping the keys.
Of course, if I were a devoted Mac user I could get used to all this, but I do the vast majority of my coding at work, on Linux. Also, given Apple's anti-competitive behavior with the iPhone platform, I've begun to feel dirty using even their desktop products.
Meanwhile, playing with hardware last weekend was fun and I was itching to do it again. So, the natural thing to do was to go out and buy the pieces for a new machine.
Hardware
Requirements:
- Must run FreeBSD.
- Optimized for compiling code -- a task that is easily parallelized.
- Must drive two 30-inch dual-link DVI monitors.
- Avoid excessive power consumption.
Non-requirements:
- Not a gaming machine.
- Does not need top-of-the-line (read: exponentially expensive) hardware.
- Does not need much hard drive space.
I ended up settling on:
- Intel Core i7-930 processor: Four cores, hyperthreaded. Costs a quarter of the six-core i7 extreme.
- Intel DX58SO "smackover" motherboard: If it's Intel's processor and Intel's chipset anyway, might as well let them make the board too. More likely to work right. There does not appear to be any nForce chipset for the i7 currently.
- GeForce GTS 250: nVidia actually offers FreeBSD drivers based on the same codebase as their Windows drivers, including the whole OpenGL implementation. The 250 appeared to be the cheapest modern card that met the dual-DVI requirement.
- 3x2GB RAM: The motherboard has three RAM channels so you want to put three sticks in it.
- 128GB SSD: Yay for fast seeks and cool, quiet operation. Mass storage belongs on the network anyway.
Operating System
I chose FreeBSD for two reasons:
- When writing Evlan in 2004-ish, I learned that the FreeBSD kernel offered many features that I wanted which Linux sorely lacked. Things like kqueue and AIO are key to implementing a framework based on event-loop concurrency, as Evlan was. I believe Linux has since gained equivalent features, but I was left with an impression that FreeBSD was more thoughtfully designed whereas Linux was more ad hoc.
- I explicitly wanted a challenge. If I wanted something that "just worked", I'd be installing Windows. But I want a project where I learn something, and feel some sense of satisfaction in the end. FreeBSD is more difficult to set up, but in the process you learn how the system works, and once configured it can run essentially all the same software as Linux.
I installed FreeBSD 8.0 (UPDATE: 8.1 -- see end of post).
Details
Make no mistake: FreeBSD is not ready for the desktop. It works great once you get it set up, but it requires a lot of work to get there. As I said above, I explicitly wanted to tinker, because it is fun and educational. But anyone who wants a system that "just works" should look elsewhere.
Below are things I did, what worked, what didn't, and how I solved those problems. Hopefully someone will find these useful.
Installer
FreeBSD can be installed from a USB memory stick. They even provide a disk image for this exact purpose. Yay! I was able to write the disk image from within Mac OSX using the "dd" command as described in the FreeBSD release notes. The System Profiler utility reported that my USB drive was at /dev/disk1. However, before OSX would let me write, I had to unmount the flash drive -- NOT by "ejecting" it, which made it disappear entirely, but by using the "umount" command.
The FreeBSD installer is not very user-friendly. Being difficult to understand is bad, but being difficult to understand *and* not having any way to go back if you made a mistake is much worse. It turns out the standard installation mode has this property -- you usually cannot go back if you chose the wrong thing. However, the "custom install" mode -- which is labeled "for experts" -- actually presents you with a list of all the steps, from which you can choose which ones to perform. You should still go through them in order, but this allows you to repeat steps or go backwards when you make a mistake.
The installer initially could not detect my memory stick, even though it was installing from said stick. To fix this I had to choose "options" from the top-level menu, and then choose "rescan devices" (or something like that) from the options menu. This appeared to do nothing, but when I then went back and told the installer to install from USB again, it worked. (UPDATE: Fixed in FreeBSD 8.1.)
Installing packages
The memory stick installer only provides basic packages. Any interesting programs have to be installed separately, through the "packages" system (pre-compiled binaries downloaded from freebsd.org) or the "ports" system (scripts which automatically download original source code and compile/install it for you). I prefer packages whenever they are available, since they're faster. The "sysinstall" command can be run after installation in order to select additional packages to download, which is good for going through and getting the basics together. "pkg_add -r" can be used to install specific packages by name, on-demand (e.g. "pkg_add -r protobuf").
With this I installed X.org and kde4, among other things.
Graphics driver
The nVidia driver is not included with FreeBSD because it is not open source, and requires agreeing to a license. Whatever. There is a "port" for it, but it is out of date. I downloaded the most recent version from the nVidia web site and followed their installation instructions. This turned out to be surprisingly easy -- they actually provide a script which updates all the necessary config files for you! What a crazy idea.
For a long time, I could not convince Xorg to display at a reasonable resolution; it kept giving me something like 1280x800 (though I swear it looked more like 320x240; I must be spoiled). Turns out I needed this line in the "Screen" section of my xorg.conf:
Option "AllowDualLinkModes" "True"
WTF? Why on Earth would an option like this not be on by default? (This was actually before I installed the nVidia driver; I was still using the open source "nv" driver. Not sure if it makes a difference.)
Graphical login
To enable graphical login I had to edit /etc/ttys and change the "ttyv8" line to:
ttyv8 "/usr/local/kde4/bin/kdm -nodaemon" xterm on secure
This gave me a nice KDE-style login prompt on startup, but with a major problem: the keyboard layout was Qwerty, while I use Dvorak. Changing my keyboard layout in the KDE settings UI did not fix it, since those are user-specific and don't apply to the login prompt. Changing xorg.conf *also* did not fix it: under recent versions of FreeBSD, InputDevices in xorg.conf are ignored in favor of letting the USB daemons "automatically" figure it out. Of course, said daemons don't know what keyboard layout I use. The FreeBSD manual contained instructions on how to tell it (via /usr/local/etc/hal/fdi/policy/x11-input.fdi
), but they didn't work -- the file seemed to have no effect. I banged my head against this for a long time. Nothing I did could even make Xorg print an error; it just ignored everything.
Eventually I figured out that kdm runs /usr/local/kde4/share/config/kdm/Xsetup before displaying the login dialog. So I inserted "setxkbmap dvorak" into it, which fixed the problem. It's a hack but gets the job done.
Audio
Enabling audio was as simple as loading the right sound driver. In my case:
kldload snd_hda
However, this created four separate /dev/dsp
s. It turned out /dev/dsp0
referred to the line-out jacks on the back of my machine, while /dev/dsp1
referred to the front headphone jack (the other two were digital outputs). Most apps only play to /dev/dsp0
; I'd prefer for this to go to all jacks.
It turns that the snd_hda
driver supports rather complex configuration. Annoyingly, it requires you to know details that are different for every chipset. Although the driver knows these details, there is no simple tool to query it; you must reboot and pass -v
as a kernel boot flag, then examine the results with dmesg
. For me, the relevant output was:
hdac0: Processing audio FG cad=2 nid=1... hdac0: GPIO: 0xc0000002 NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=1 GPIUnsol=1 hdac0: nid 17 0x01451140 as 4 seq 0 SPDIF-out Jack jack 5 loc 1 color Black misc 1 hdac0: nid 18 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 hdac0: nid 20 0x01014410 as 1 seq 0 Line-out Jack jack 1 loc 1 color Green misc 4 hdac0: nid 21 0x02214420 as 2 seq 0 Headphones Jack jack 1 loc 2 color Green misc 4 hdac0: nid 22 0x01016011 as 1 seq 1 Line-out Jack jack 1 loc 1 color Orange misc 0 hdac0: nid 23 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 hdac0: nid 24 0x02a19860 as 6 seq 0 Mic Jack jack 1 loc 2 color Pink misc 8 hdac0: nid 25 0x01011012 as 1 seq 2 Line-out Jack jack 1 loc 1 color Black misc 0 hdac0: nid 26 0x01813450 as 5 seq 0 Line-in Jack jack 1 loc 1 color Blue misc 4 hdac0: nid 27 0x01a1985f as 5 seq 15 Mic Jack jack 1 loc 1 color Pink misc 8 hdac0: nid 28 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1
This shows all the inputs and outputs the hardware has. The number after as
indicates to which /dev/dsp
the line will be connected (off by one). The seq
indicates which speaker pair this is -- e.g. front, back, etc. Following the instructions, I added a line to /boot/device.hints
:
hint.hdac.0.cad2.nid21.config="as=1 seq=15"
This says that to move nid
21 (the headphone jack) to as
1 (the first output device, which includes the back line-out jacks). Setting seq
to 15 has a special meaning for headphones: when connected, all other speakers on the same as
should be muted.
So, not only does my headphone jack work, but as an added bonus, plugging in headphones automatically mutes the other speakers. I completely didn't expect FreeBSD to support that. I wish it would have been set up that way by default, though. But I guess it's neat that I could actually set up each jack (three in the back, one in the front) to be an independent stereo output, with different programs playing to each one. I could use that for my house, to power the speakers that I'll have around the place.
Chrome
Following the instructions on the FreeBSD Chromium wiki page, I built Chromium. There were a few difficulties:
- Pulling the Git repo takes forever -- it's over 1GB! Next time, I'll try subversion.
- The "Sync source" step fails with an error, but this error appears to occur after everything has been synced. It looks like it tries to start some of the build process, but fails because you haven't applied the FreeBSD patch yet.
- The wiki fails to mention bison among the dependencies.
pkg_add -r bison
- The wiki lists ALSA as a dependency, but this package doesn't exist in FreeBSD 8.0. I had to grab the ALSA packages from a FreeBSD 8.1 release candidate instead. I got a warning about dependency version mismatches when I tried to
pkg_add
them, but it seems to have worked fine.
With all that done, Chromium built and ran flawlessly. It's just like using Chrome on any other system. I was expecting some stuff to be semi-functional, but so far I've found nothing. It's fast, too.
Flash
I totally didn't expect to be able to use Flash at all on FreeBSD. On my Linux machine at work, Flash animations of any sort seem to blow away the CPU, and video in particular stutters horribly with no audio.
It turns out that FreeBSD has a port which sets up the Flash plugin to run in the Linux emulation layer. Amazingly, the plugin can run on the Linux ABI even when the rest of the browser is running natively.
The port installer ran into trouble when the Linux Flash installer downloaded from Adobe did not match the expected size and hash. It looks like they had released a new version since the port was written -- the file was not versioned. I had to modify the port to tell it the new hash so it would accept the file (I didn't want to find the old version because it may have had security problems). This did not seem to create any problems.
The port installer had several dependencies on Linux stuff which was pulled from Fedora Core 10. It seemed to have a lot of trouble finding a working Fedora mirror for this stuff. I had to download several packages manually after finding them on Google. (Fortunately all the hashes matched.)
Once installed properly, Chrome picked up the plugin automatically. Amazingly, video played flawlessly, with sound, at HD resolution, full screen.
Fonts
On initially installing Chrome, I noticed that some fonts (especially the debug console) looked bad or even unreadable (due to under-sampling). Also, most unicode characters were replaced with boxes -- these turn out to be common even in English text. The solution was to install two ports:
- webfonts: This pulls a bunch of Windows truetype fonts off some site that seems to be hosting them and has nothing to do with FreeBSD. Technically since these are part of Windows, you must have a Windows license to use them. I, of course, have zillions of Windows licenses. (UPDATE: A commenter notes that actually Microsoft allows gratis redistribution of these fonts on the condition that they be distributed only in the form of the original exe files. So you have to run a script that extracts the fonts from the exes. I was confused by the pkg-descr which mentioned that a Windows license was needed only for the Tahoma font.)
- code2000: A "shareware" unicode font. Installing this got rid of the boxes. Apparently I'm supposed to pay someone $5 if I continue to use it, though.
Suspend/Resume
After digging around for awhile, I figured out that the proper way to make FreeBSD go to sleep is with the zzz
command. So far I've tested this once, and it failed to wake up -- it partially awoke (responded to pings), but then spontaneously rebooted. Will have to play with this more.
iTunes replacement
I was sad to learn that Songbird -- a popular open source iTunes clone -- had discontinued Linux support (wat?), and certainly did not support FreeBSD. Doh.
However, Amarok looks like another decent alternative. I'm currently in the process of importing my iTunes library into it.
Update: So far Amarok failed at importing my iTunes library. The importer appeared to be O(n2) somehow -- it started out fine, but scanning each file became progressively slower, and after running overnight I came back to find Amarok using 100% of one CPU and making no progress. Grr. I'll have to investigate this next weekend. (UPDATE: A newer version of Amarok fixed this problem.)
Amarok's name and icon keep making me think of Three Wolf Moon.
Conclusion
Back in 1999 I used to be a huge Linux desktop fan, but in 2000 I gave it up in favor of Windows 2000 (which, unlike previous versions, did not crash daily). I had become tired of all the work it took to configure and maintain a Linux machine. Ten years later, configuring FreeBSD is about as much work as Linux was at the time. But, I think these days I'm more interested in this hands-on approach, and the ability to customize every aspect of my OS is appealing.
Meanwhile, I'm delighted to find that KDE seems to have kept up with the UI innovations made in Windows and Mac OSX over the last ten years. KDE can even do Mac-style Expose -- perhaps the thing I miss most whenever I work on a non-Mac system.
In general I've been pleasantly surprised by what FreeBSD/KDE has to offer as a desktop system. I had originally intended to use this machine for coding projects only, but now it looks like I may as well make it my primary desktop. Now that everything's configured, I don't see anything significant that I'll miss from OSX, and using a fully open source system feels so much nicer.
Dénouement
So, as it turns out, a mere two days after I installed FreeBSD 8.0, they released version 8.1. Argh. So this weekend I had to update, leading to a new series of issues...
Hard drive has a new address
Apparently the new kernel version decided that that it really preferred to put my hard drive at /dev/ad10
instead of /dev/ad6
like 8.0 did. As a result, when I first tried to boot the new kernel, it couldn't find the boot volume. Amazingly, though, instead of just crashing, it brought me to a prompt where it told me what hard drives and options it knew about, and asked me what to do. I was able to figure out what happened and tell it where to boot from. It then dumped me into a single-user shell from which I was able to edit /etc/fstab to fix the boot config, then reboot happily.
portupgrade
The update instructions say that you need to re-compile all of your software after updating the system, as the new base libraries may not be binary-compatible with the old. Ugh. It suggested running portupgrade -af
for this purpose. I decided instead to run portupgrade -afP
to tell it to use pre-compiled packages where available. I also updated my ports tree before starting so that I'd get the latest versions of everything.
Alas, one of these two changes (or maybe both?) seems to have been a deadly mistake. portupgrade
took forever, and quite a few packages failed to install because of new dependencies that weren't present. KDE was completely broken after this. I tried to fix it by running portupgrade -RP kde4
to make it re-try installing kde4 and all its new dependencies. This again took ridiculously long, and repeatedly complained that it couldn't install required dependency Perl 5.10 because it conflicted with Perl 5.8. After manually forcing an uninstall of Perl 5.8 and install of Perl 5.10, I got to the point where I could start up KDE, but other things seemed broken. Chrome, in particular, was now SIGBUSing regularly, and continued to do so even after re-compiling it from scratch.
Screw it, start over
I downloaded the FreeBSD 8.1 memstick image, backed up a couple config files that I didn't want to rewrite, and set off to re-install from scratch. Sigh.
ZFS
Since I had to start over, I decided to do something I had forgotten on my first time through: use ZFS. This is a new, radically different filesystem which is, IMO, the way filesystems should be -- read the Wikipedia entry for details. Linux does not support ZFS because the ZFS code is under a GPL-incompatible license. FreeBSD, however, has no problem using ZFS. Hah!
There is still no support for ZFS in the FreeBSD installer. Lots of guides on the internet suggest a variety of ways to get FreeBSD on ZFS. I ended up using this one. The basic idea is to install a minimal FreeBSD system on a small partition, then create the ZFS volumes and migrate all data to them. The small original partition must stick around as the boot kernel cannot yet be read from a ZFS volume. But, once the kernel is up, it can map in the ZFS drives, so everything else can live there.
Eclipse
After setting up the rest of the system as before, I wanted to install Eclipse to do some coding. There were a couple bumps in the road.
First, you really need to install the eclipse-devel
package. Plain old eclipse
is way out-of-date.
Second, the package depends on jdk-1.6, but I actually installed OpenJDK instead. Luckily jdk-1.6 cannot be installed automatically since you have to accept a Sun license agreement -- this means that installing Eclipse will not accidentally install a whole second JDK. I just had to tell the installer to ignore the dependency problem, and then set my JAVA_HOME to OpenJDK and everything worked fine. (UPDATE: This lead to some crashes, unfortunately. So I gave in and installed JDK 1.6, which worked better. The annoying part about this is that you must build JDK from sources (licensing restrictions), and since it is itself written in Java, the port actually installs yet another JDK called "diablo" first. So now I have three whole Java implementations installed. Urgh.)
Third, when I went to Eclipse's built-in plugin installer to install the plugins I need, it didn't have any download sites registered. I had to copy them over from the Eclipse install on my Mac.
Fourth, Eclipse refused to talk to any of these sites, giving a cryptic error message about an invalid argument (to what, it didn't say). Googling revealed that the problem was that Java tries to use IPv6 by default, and if that doesn't work, throws an exception. Brilliant. The fix is to pass -vmargs -Djava.net.preferIPv4Stack=true
to Eclipse to force IPv4.
Finally, when I installed the C++ development plugin (CDT) through the updater, it appeared to install fine, but seemed to have no effect -- none of the C++ development features showed up in Eclipse. After lots of head-scratching, I figured out that the CDT has a couple of native-code parts which have to be compiled explicitly for FreeBSD. I didn't want to download the full CDT source code to compile, but I figured out that I could pull the necessary bits out of the eclipse-cdt FreeBSD package despite it being way out-of-date -- apparently these parts don't change much. Here's what I did:
mkdir temp cd temp fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/Latest/eclipse-cdt.tbz tar xf eclipse-cdt.tbz cp -rv eclipse/plugins/*freebsd* ~/.eclipse/org.eclipse.platform_3.5.0_1216342082/plugins
Boot-up Splash Screen
It turns out that FreeBSD supports setting a boot-up splash screen, so you don't have to look at all that ugly text flying by. I followed these instructions to set it up -- he even provides a pretty nice image to use.
On the bright side
- The installer now detects the USB drive without a rescan.
- The newer version of Amarok successfully imported my iTunes collection.
- ALSA libs (needed by Chrome) are now part of the released distro.
- KDE looks a little prettier than before.
- OpenJDK 7 wasn't available in 8.0.
At this point, everything appears to be working. Hopefully now I can write some code!
Starcraft 2!
This is amazing. I can run Starcraft 2 on FreeBSD!
Kernel update
I had to upgrade to 8-STABLE. 8.1-RELEASE, even though it is only a couple weeks old, is too old: apparently a patch to fix Starcraft was just submitted recently. Note that the symptom of not doing this is that the game crashes when you try to log in.
Install Wine
I followed these instructions to install Wine. This is a little tricky: Only the 32-bit build of Wine currently works on FreeBSD, but of course I'm running the 64-bit kernel. Luckily, FreeBSD has a compatibility layer for running 32-bit binaries. Unfortunately, the ports system is not very well set up for this. I basically had to build/unpack a 32-bit FreeBSD base image into /compat/i386
, chroot into it, and install Wine there. I also had to install the 32-bit version of the nvidia drivers, for the GL libraries -- note that it's important to use the exact same driver version.
winetricks
On the advice of this page I used winetricks to install several packages:
winetricks droid fontfix fontsmooth-rgb gdiplus gecko vcrun2008 vcrun2005 allfonts d3dx9 win7
I'm not sure all of these were actually necessary, though. Dan Kegel, winetricks author (and former Google employee whom I've met), replied to that post saying he didn't think all of those packages were really needed. I also had to install IE6 using winetricks as the Gecko-based HTML widget seemed to have troubles with the SC2 installer.
Get the installer
My machine does not have an optical disk drive, so I copied the files off the DVD from my Mac. This was a little tricky because by default my mac mounted the Mac partition of the DVD, hiding the Windows installer. I had to manually mount the correct partition:
umount /dev/disk1s2 mkdir mountpoint mount_udf -o rdonly /dev/disk1s1 mountpoint
I could then copy all the files from mountpoint
. I later couldn't get the disk to eject (even after mounting it normally) and had to reboot. Hrm.
TURN OFF COMPOSITING
If you are using a compositing window manager, disable it! For KDE, go to System Settings -> Desktop -> Desktop Effects and click the "Suspend Compositing" button. Otherwise 3D games are going to render slower than usual. Turn it back on when you're done playing. :)
Install
The installer ran fine. The patching process did not. It kept popping up something like "Microsoft C Runtime error". However, I noticed that even when this error popped up, the download progress would continue to go up for awhile, until finally getting stuck. If I then killed Starcraft II.exe
and started it again, it would continue where it left off, crash again, but get further. After several iterations of this I had managed to download and install all the patches. Note: This problem may have been fixed by the kernel update, which I did not actually install until later. (Update: Nope, still happens.)
Sound
The internets claimed that if I built Wine with OpenAL support, sound would work. I did this, but the game was silent when I first ran. I think I fixed this by going into winecfg
, under the "Audio" tab, and setting "Hardware Acceleration" to "Emulation". On the advice of another site, I also went under the "Libraries" tab and added an override for "mmdevapi", which I set to "disabled". I'm not sure if the latter fix was actually needed.
That's it!
I think that's everything I did. The game runs pretty smoothly at 2560x1600 with all graphics settings on "High" (although it defaulted everything to "Ultra", which was too much for my GeForce GTS 250).
So far I've played one round against the computer. Everything went fine until I accidentally activated KDE's "Desktop Grid" view which causes it to zoom out and display all windows from all desktops such that they don't overlap (like OSX's "Expose"). Amazingly, Starcraft kept on rendering through this, in its little window, only finally crashing when I tried to restore it. I will avoid activating that in the future. :)