tag:blogger.com,1999:blog-66934101326826518012024-03-13T18:27:06.506-07:00The Ravings of a Techno-FoolAnonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.comBlogger25125tag:blogger.com,1999:blog-6693410132682651801.post-23575159343109310332016-04-14T11:35:00.003-07:002016-04-14T11:35:58.017-07:00.Net: Getting an Existing Code-First Solution Running Against a Rebuilt DatabaseMost of my posts are linux related, since I run that at home and encounter problems to solve due to being a relative newcomer. Occasionally, though, I run into something at work worth posting about (I'm a .Net developer).<br />
<br />
I ran into a problem pointing an existing Code-First solution to a Dev database instance that I had restored from backup. I spent quite a bit of time working through all of the various issues that this situation caused, so hopefully the solutions I found will help someone else down the road. You may find that you only have some of these issues, depending on how the solution you're dealing with is configured.<br />
<br />
The main problem I had was, after I had switched the connection strings in the project over to my new DB instance, the site threw an error: "<span style="font-family: "Courier New",Courier,monospace;">Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration. You can use the Add-Migration command to write the pending model changes to a code-based migration.</span>" In order to fix this, though, it turned out I needed to do a few things first - the dreaded <a href="http://programmers.stackexchange.com/questions/34775/correct-definition-of-the-term-yak-shaving" target="_blank">Yak Shaving</a>. Down the rabbit-hole we go!<br />
<br />
So the goal is to get your database synchronized. In my case, I had a very recent production backup, so I knew there were very few, if any, actual differences between the database and the existing model in the project. To do this, you'll need to be able to run some entity framework commands in the package manger console. You might be getting an error trying to run "update-database -script" as I was; or you might have already discovered that isn't the first command you need to run and have been getting an error running the "add-migration" or "enable-migration" commands. The error that I received was: "<span style="font-family: "Courier New",Courier,monospace;">The term 'Update-Database' is not recognized as the name of a cmdlet, function, script file, or operable program.</span>" The root cause turned out to be an error in packages.config; one of the files was listed twice. Here are the steps I used to fix it:<br />
<br />
<ol>
<li>Open packages.config. Simply use CTRL + , and type packages into the prompt that comes up. It'll find the file immediately. (This is equivalent to CTRL + SHIFT + r in eclipse).</li>
<li>Comment out any duplicate entries (CTRL + k + c) and save your changes.</li>
<li>Open the package manager console. If you don't see it as one of the minimized tabs in VS, use View->Other Windows->Package Manager Console.</li>
<li>Type enable-migrations and hit enter.</li>
<li>If you get a message saying migrations are enabled or migrations are already enabled, you're good. If you still get the "not recognized as cmdlet" message, keep going.</li>
<ol>
<li>Check the version of entity framework listed in packages.config. If it is not listed, check the version of the .dll in your references folder.</li>
<li>In the package manager console, type "install-package EntityFramework -version 5.0.0.0" (or whatever version you need) and hit enter.</li>
<li>You should get a message that either the package has been installed successfully or that it was already installed.</li>
<li>Restart Visual Studio.</li>
</ol>
</ol>
<div>
Now when I ran the commands, I got a different error. I always chalk that up as a win. I find that as long as I keep getting new errors, I'm probably getting closer to the final solution. In this case, it was "<span style="font-family: "Courier New",Courier,monospace;">Could not load file or assembly EntityFramework .. or one of its dependencies</span>". It took some real digging to find the solution to this one. In this case, it is to copy the contents of the EntityFramework NuGet package into an alternate location where Visual Studio 2015 expects it.</div>
<div>
<ol>
<li>In your project, open your references node and right click on EntityFramework. Select Properties.</li>
<li>Copy the Path item, excluding the EntityFramework.dll portion.</li>
<li>Open windows explorer and paste the path into the location bar. No location bar? Paste the path into IE instead, it'll bring up windows explorer to the correct location.</li>
<li>Use the location bar or back directory arrow to go all the way back to the packages folder.</li>
<li>Right click and copy the EntityFramework folder.</li>
<li>Open a windows explorer window to C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\EFTools</li>
<li>Create a new folder in this location called NuGet Packages.</li>
<li>Inside the NuGet Packages folder you just created, paste the EntityFramework folder.</li>
</ol>
</div>
<div>
<br /></div>
<div>
Once I'd done that, the entity framework commands were available to me in package manager, and they actually worked! Now I needed to actually do the work of synchronizing the database. This turns out to be a relatively straightforward process:</div>
<div>
<ol>
<li>Open the package manager console if it isn't already open. See step 3 above if you don't know where to find it.</li>
<li>If you're not sure if migrations are enabled, run the command: "enable-migrations".</li>
<li>Assuming that was successful or the project was already set that way, you'll want to add a migration. You'll need to give it a name, say ProjectName001. Run the command: "add-migration ProjectName001".</li>
<li>This should have created a .cs file containing what your project thinks the differences are.</li>
<li>Now, rather than letting the machine try to make the migration automatically, you can create a SQL script that you can adjust by hand. If you have experience with SQL, I recommend this route.</li>
<li>Run the command: "update-database -script". This will generate a SQL script that will then be displayed in Visual Studio.</li>
<li>Save the SQL script, and look through it and see if it's doing anything dumb. In my case, the script wanted to add several columns that already existed, as well as drop a number of useful indexes and foreign keys. I commented this code out, which ended up leaving just one line, the one that starts with "INSERT INTO [__MigrationHistory]"</li>
<li>Run your adjusted SQL script against your database instance. I used SQL server management studio, because old habits are hard to break, but you can run SQL inside Visual Studio if you want.</li>
<ol>
<li>Click the connect icon (server icon thing) at the top of the window and enter the name of your database instance. Click the connect button on the dialog.</li>
<li>Execute your script (CTRL + SHIFT + E)</li>
</ol>
</ol>
<div>
The key thing is that now I had a new record in the __MigrationHistory table that will allow the Code First solution to run! Since my database sufficiently matched, at this point my solution ran just fine.<br />
<br />
Hopefully this helps someone else, I know this cost me significant time to research and fix.</div>
</div>
<div>
<br /></div>
<div>
Useful links that helped me construct this guide:</div>
<div>
http://stackoverflow.com/questions/9674983/the-term-update-database-is-not-recognized-as-the-name-of-a-cmdlet</div>
<div>
https://github.com/NuGet/NuGetGallery/issues/2592</div>
<div>
http://stackoverflow.com/questions/20968520/entity-framework-code-first-migration-fails-with-update-database-forces-unnecc</div>
<div>
https://msdn.microsoft.com/en-us/data/dn579398.aspx#option1</div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-43155173777972641842015-08-30T17:20:00.001-07:002015-08-30T17:20:48.309-07:00Upgrading the firmware on TrendNet TEW-731BR<div dir="ltr" id="docs-internal-guid-c26cc8f0-811d-5af1-f58c-90e07ac8d19b" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">If you’re like me, and you tried to upgrade your router firmware, but found that you get a checksum error, you may want to try an alternate version of the firmware. After all, any newer firmware is probably better than what you have, if you have the factory default.</span></div>
<div dir="ltr" id="docs-internal-guid-c26cc8f0-811d-5af1-f58c-90e07ac8d19b" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> </span></div>
<div dir="ltr" id="docs-internal-guid-c26cc8f0-811d-5af1-f58c-90e07ac8d19b" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">If you happen to have a TrendNet TEW-731BR, I have some specifics on how do this. The newest version (1.03b01) appears to have a flaw that prevents the router from running it. It did not matter how many times I tried to download and extract it, it failed every time. If you have this same issue, you'll need to grab the version prior to that (1.02b05), released June 26, 2014. I found it at</span><a href="http://download.trendnet.com/TEW-731BR/firmware/" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> </span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">http://download.trendnet.com/TEW-731BR/firmware/</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> which is the repository for all the TrendNet firmware downloads.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">I was able to upgrade my TEW-731BR (1.0R) router without any issues using the 1.02b05 firmware.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Note that if you have a TEW-731BR and the router itself it does not have GREENnet written on it, you may have the TEW-731BR (2.0R). This is a different router and has a different firmware, which you can get from the TrendNet site here: </span><a href="http://www.trendnet.com/support/supportdetail.asp?prod=235_TEW-731BR" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">http://www.trendnet.com/support/supportdetail.asp?prod=235_TEW-731BR</span></a></div>
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Updating the firmware is quite painless, simply open up the firmware admin, go to tools->firmware. Click the browse button and select the .bin file of the firmware you downloaded and extracted, and then click Update. After the processing countdown, the new firmware will be loaded, with all of your previous settings preserved.</span>Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com1tag:blogger.com,1999:blog-6693410132682651801.post-54232028222812999252015-06-29T17:19:00.001-07:002015-06-29T17:19:49.944-07:00LMT #4: A Simple Desktop Background SlideshowLinux Mint Tips #4: A Simple Desktop Background Slideshow<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">Linux
Mint Tips series is a list of tricks I've picked up after having
switched away from Windows for good in 2013, after dabbling for years.
I'll do my best to go back and edit posts that contain any erroneous
information, but keep in mind that I'm a relative newcomer to the Linux
scene. I wrote this tutorial running the MATE desktop environment in
Mint 17.1.</span></span><br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">The desktop background is often one of the first things I customize after installing a fresh OS, and that's no exception in Mint. I have a couple of preferences: one, I like the image to change every so often, and two, I prefer landscapes. In other operating systems, setting up this sort of thing is a built-in, point-and-click affair. In Mint, it is possible, but there's a little more legwork (but not too much).</span><br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">For the example provided here, download and save the following images to your Pictures folder. Please note that the tutorial uses the 1920x1080 resolution size. If you need to choose an alternate size, you'll have to tweak the image names in the .xml file. You'll also need to copy/paste them over into Pictures from the Downloads folder if you're using the default browser settings.</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br /></span>
<a href="https://interfacelift.com/wallpaper/details/1489/tree_and_the_mountain.html"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">https://interfacelift.com/wallpaper/details/1489/tree_and_the_mountain.html</span></a><br />
<a href="https://interfacelift.com/wallpaper/details/2031/ageeba.html"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">https://interfacelift.com/wallpaper/details/2031/ageeba.html</span></a><br />
<a href="https://interfacelift.com/wallpaper/details/2053/autumn_mill.html"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">https://interfacelift.com/wallpaper/details/2053/autumn_mill.html</span></a><br />
<a href="https://interfacelift.com/wallpaper/details/1940/moraine_lake.html"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">https://interfacelift.com/wallpaper/details/1940/moraine_lake.html</span></a><br />
<a href="https://interfacelift.com/wallpaper/details/1494/lonesome_house.html"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">https://interfacelift.com/wallpaper/details/1494/lonesome_house.html</span></a><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br /></span>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Once you have those, you'll need to grab the xml file that drives the slideshow.<br /><a href="https://drive.google.com/file/d/0B87z1DYb0jIoZjVqSkdNeHdHdmM/view?usp=sharing">https://drive.google.com/file/d/0B87z1DYb0jIoZjVqSkdNeHdHdmM/view?usp=sharing</a></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">I recommend putting this in the Pictures folder as well. You'll need to edit the file and change /home/harborpirate to substitute your own home folder name instead of harborpirate. </span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br /></span>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Right click on the desktop and click Change Desktop Background. Change the dropdown setting from Images to All Files. Choose Interface.xml.</span><br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">What this xml file contains is the instructions for the locations of the files, what order they should be swapped, what transition to use, how long the transition lasts, and how much time between transitions.</span><br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">I've kept this example relatively simple, but with enough detail to hopefully be useful. Enjoy.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br /></span>Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-21555306961232274422015-04-22T13:55:00.001-07:002015-04-22T13:55:31.279-07:00Light Color Icon for Gridster Resize HandleIf your site has a dark theme and it is difficult to see the dark resize icon that gridster uses, I've got a fix for you.<br />
<br />
In the jquery.gridster.css, you'll see that .gs-resize-handle-both includes a base64 encoded image for background-image. You may think that it'll be a pain to change this, since you'll need to decode, save as a file, edit, save again, open the file in binary mode, copy the text, and then re-encode, but its actually a little simpler than that.<br />
<br />
First, grab the base64 encoded string from the css. The master branch file is here: https://github.com/ducksboard/gridster.js/blob/master/src/jquery.gridster.css, and the following is the actual base64 encoded string of the resize handle image if you want to follow along but can't be bothered to open that file:<br />
PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg08IS0tIEdlbmVyYXRvcjogQWRvYmUgRmlyZXdvcmtzIENTNiwgRXhwb3J0IFNWRyBFeHRlbnNpb24gYnkgQWFyb24gQmVhbGwgKGh0dHA6Ly9maXJld29ya3MuYWJlYWxsLmNvbSkgLiBWZXJzaW9uOiAwLjYuMSAgLS0+DTwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DTxzdmcgaWQ9IlVudGl0bGVkLVBhZ2UlMjAxIiB2aWV3Qm94PSIwIDAgNiA2IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHZlcnNpb249IjEuMSINCXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiDQl4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjZweCIgaGVpZ2h0PSI2cHgiDT4NCTxnIG9wYWNpdHk9IjAuMzAyIj4NCQk8cGF0aCBkPSJNIDYgNiBMIDAgNiBMIDAgNC4yIEwgNCA0LjIgTCA0LjIgNC4yIEwgNC4yIDAgTCA2IDAgTCA2IDYgTCA2IDYgWiIgZmlsbD0iIzAwMDAwMCIvPg0JPC9nPg08L3N2Zz4=<br />
<br />
Next you'll need a tool to decode this string. There are numerous ones online, including the one I ended up using:<br />
http://www.motobit.com/util/base64-decoder-encoder.asp<br />
<br />
Paste the string into the large textbox and choose the decode radio button item. You do not need to change any other settings. Click the "convert the source data" button. You'll now end up with a second textbox containing some xml that defines the original svg image. Here's that xml:<br />
<br /><?xml version="1.0" standalone="no"?><br /><!-- Generator: Adobe Fireworks CS6, Export SVG Extension by Aaron Beall (http://fireworks.abeall.com) . Version: 0.6.1 --><br /><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><br /><svg id="Untitled-Page%201" viewBox="0 0 6 6" style="background-color:#ffffff00" version="1.1"<br /> xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"<br /> x="0px" y="0px" width="6px" height="6px"<br />><br /> <g opacity="0.302"><br /> <path d="M 6 6 L 0 6 L 0 4.2 L 4 4.2 L 4.2 4.2 L 4.2 0 L 6 0 L 6 6 L 6 6 Z" fill="#000000"/><br /> </g><br /></svg><br />
<br />
This seems like the point where you'll need to deal with all the complexity of saving this as a file and using an svg editor to make modifications to it, but as it turns out, the change that needs to be made is so simple that you can just edit this text by hand. The key pieces are the opacity setting and the fill color. What you'll want on a dark themed site is to up the opacity slightly, and choose a light color for the fill color. I set the opacity value to 0.85 and the fill to #dddddd, but you can tweak these however you like. Just remember that opacity is a decimal between 0.00 and 1.00 and that fill is a hex value between #000000 (black) and #ffffff (white). Be careful about setting the value to pure white (#ffffff). Since we do not see the background color at all, I'm pretty sure that the background-color is being used as the transparency color; thus using pure white for a fill color may result in not seeing anything at all. If you need to do that, you may need to experiment a little with the effects of changing the background-color value.<br />
<br />
At this point you'll have a new xml, like this one:<br />
<br />
<?xml version="1.0" standalone="no"?><br /><!-- Generator: Adobe
Fireworks CS6, Export SVG Extension by Aaron Beall
(http://fireworks.abeall.com) . Version: 0.6.1 --><br /><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><br /><svg id="Untitled-Page%201" viewBox="0 0 6 6" style="background-color:#ffffff00" version="1.1"<br /> xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"<br /> x="0px" y="0px" width="6px" height="6px"<br />><br /> <g opacity="0.85"><br /> <path d="M 6 6 L 0 6 L 0 4.2 L 4 4.2 L 4.2 4.2 L 4.2 0 L 6 0 L 6 6 L 6 6 Z" fill="#dddddd"/><br /> </g><br /></svg><br />
<br />
To translate this back into the encoded format to replace the value in the css, copy and paste this text back into the base64 tool, making sure to paste it into the bottom textarea (the input one). Change the option to encode. If you used the same values I did, you'll get the following back in the top textbox as the result after you click the "convert the source data" button:<br />
<br />
PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIEZpcmV3b3JrcyBDUzYsIEV4cG9ydCBTVkcgRXh0ZW5zaW9uIGJ5IEFhcm9uIEJlYWxsIChodHRwOi8vZmlyZXdvcmtzLmFiZWFsbC5jb20pIC4gVmVyc2lvbjogMC42LjEgLS0+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyBpZD0iVW50aXRsZWQtUGFnZSUyMDEiIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgdmVyc2lvbj0iMS4xIg0KeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSINCng9IjBweCIgeT0iMHB4IiB3aWR0aD0iNnB4IiBoZWlnaHQ9IjZweCINCj4NCjxnIG9wYWNpdHk9IjAuMzAyIj4NCjxwYXRoIGQ9Ik0gNiA2IEwgMCA2IEwgMCA0LjIgTCA0IDQuMiBMIDQuMiA0LjIgTCA0LjIgMCBMIDYgMCBMIDYgNiBMIDYgNiBaIiBmaWxsPSIjMDAwMDAwIi8+DQo8L2c+DQo8L3N2Zz4=<br />
<br />
You can now replace the base64 encoded image value in the jquery.gridster.css file with this one, and you'll end up with a lighter colored resize handle in gridster.<br />
<br />
You could certainly get a lot more sophisticated and choose different images depending on the color of the consuming component, but this was as far as I needed to go since the site I was working with has a consistent theme that puts a dark color at the bottom of the widgets.<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-78549262724568968122014-12-20T22:13:00.000-08:002014-12-20T22:13:00.002-08:00LMT #5: Simple TV Tuning (with Win TV PVR)Linux Mint Tips #5: Simple TV Tuning (with Win TV PVR 500)<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">Linux
Mint Tips series is a list of tricks I've picked up after having
switched away from Windows for good in 2013, after dabbling for years.
I'll do my best to go back and edit posts that contain any erroneous
information, but keep in mind that I'm a relative newcomer to the Linux
scene. I wrote this tutorial running the MATE desktop environment in
Mint 17.1.</span></span><br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">I have an older TV capture card in my PC. It still works just fine, </span><span id="docs-internal-guid-550bf7b3-6a76-34dc-8e1d-8f13d0b4e3f5" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">but I ran into some problems when I started trying to use it to view TV in Linux Mint 17.1. Namely that the TV watching packages (Myth TV, Me TV, pretty much every linux TV viewer) only work with DVB (digital video broadcast) devices, of which the older PVR series are not. After some time, I gave up searching for a nice looking piece of software and started looking for anything that worked. That's when I found a few useful guides and tips, which I'll distill for you here:</span><br />
<span id="docs-internal-guid-550bf7b3-6a76-34dc-8e1d-8f13d0b4e3f5" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><br /></span>
<span id="docs-internal-guid-550bf7b3-6a76-34dc-8e1d-8f13d0b4e3f5" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Part 1, Tuning:</span><br />
<br /><span id="docs-internal-guid-550bf7b3-6a7b-6f08-b5ae-e531d9a02016" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Open <b>Package Manager</b> and install the <b>ivtv-utils</b> package (you'll have to enter the password of your elevated account to start package manager. After you've searched and found ivtv-utils, click on the checkbox next to it. Select mark for installation. It'll ask if you want to install dependencies. Choose Mark so they'll be installed also.)</span><br />
<span id="docs-internal-guid-550bf7b3-6a7b-6f08-b5ae-e531d9a02016" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><span id="docs-internal-guid-550bf7b3-6a7c-1b8a-be25-0d1bffa78eee" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Open <b>VLC player</b> (comes pre-installed on Mint).</span><br />
<span id="docs-internal-guid-550bf7b3-6a7c-1b8a-be25-0d1bffa78eee" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Click on the <b>Media</b> menu, then select </span><span id="docs-internal-guid-550bf7b3-6a7c-d43a-eae7-b6589a8e50e8" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><b>Open Capture Device</b>.</span><br />
<span id="docs-internal-guid-550bf7b3-6a7c-d43a-eae7-b6589a8e50e8" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Click <b>PVR</b> in the Capture Mode dropdown then click the <b>Play</b> button.</span><br />
<span id="docs-internal-guid-550bf7b3-6a7c-d43a-eae7-b6589a8e50e8" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">If you do not have a PVR option, you will need to close VLC and then open <b>Terminal</b>. Type, or better yet, copy and paste in this command: <b>vlc 'v4l2c://' >/dev/null 2>&1 & </b>and hit enter. This will start VLC in the correct mode for PVR devices.</span><br />
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-550bf7b3-6a7c-d43a-eae7-b6589a8e50e8" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Open <b>Terminal</b>, if it isn't already open, and enter </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><b>ivtv-tune -c33</b> (33 is channel number, so use whatever channel you like)</span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">You should now have a valid signal and you should be able to watch TV. You can use the ivtv-tune terminal command to change the channel at any time.</span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><br /></span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Part 2, Adjusting the view:</span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><br /></span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Turn on deinterlacing to reduce the "jaggy" effect. In VLC, click on the <b>Video</b> menu, select <b>Deinterlace</b>, then select <b>On</b>.</span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">For channels that show widescreen inside the 4:3 frame, which is most of them these days, there is a useful zoom function. Click on the <b>Video</b> menu, select <b>Crop</b>, select <b>16:9</b>.</span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">To show in true fullscreen mode, use the following two options in succession: Click on the <b>View</b> menu, and select <b>Fullscreen Interface</b>. Then click on the <b>View</b> menu again, and select <b>Minimal Interface</b>. You can get out of this mode using the Esc key or by right clicking on the video itself to get the menu options to come up so you can toggle these modes back off.</span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-550bf7b3-6b6f-8d3b-e4dc-f51d0fcb66a2" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">To enable recording, click on the <b>View</b> menu and select <b>Advanced Controls</b>. This will enable the record icon in the bottom control bar. Videos are recorded to your home/Videos folder.</span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><br /></span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Thanks very much to the following guides and answers that helped me put together this tutorial:</span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><a href="http://ubuntuforums.org/showthread.php?t=1363622"><span id="docs-internal-guid-550bf7b3-6b70-d5ec-9590-61e524d38bbc" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">http://ubuntuforums.org/showthread.php?t=1363622</span></a> </span></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://unix.stackexchange.com/questions/33383/how-to-suppress-messages-generated-by-an-application-being-sent-to-my-terminal-w"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">http://unix.stackexchange.com/questions/33383/how-to-suppress-messages-generated-by-an-application-being-sent-to-my-terminal-w</span></a></div>
<div dir="ltr" id="docs-internal-guid-550bf7b3-6a7e-97a5-b1a8-304a7bd72d47" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><a href="http://ubuntuforums.org/showthread.php?t=2215261&page=2&s=f05dfc3e119f1010dfd870cfe78caeea">http://ubuntuforums.org/showthread.php?t=2215261&page=2&s=f05dfc3e119f1010dfd870cfe78caeea</a></span></div>
<span id="docs-internal-guid-550bf7b3-6a7c-d43a-eae7-b6589a8e50e8" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"> </span>Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-24881475576513008612014-10-13T11:57:00.000-07:002014-10-13T11:59:07.245-07:00LMT #3: Setting Up A Low-Privileged "Kids Account"Linux Mint Tips #3: Setting Up A Low-Privileged "Kids Account"<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">Linux
Mint Tips series is a list of tricks I've picked up after having
switched away from Windows for good in 2013, after dabbling for years.
I'll do my best to go back and edit posts that contain any erroneous
information, but keep in mind that I'm a relative newcomer to the Linux
scene. I wrote this tutorial running the MATE desktop environment in
Mint 16.</span></span><br />
<br />
<div dir="ltr" id="docs-internal-guid-c2972933-0abe-fb24-60c5-75dbda1a21b8" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">One thing I ran into after setting up my Linux machine was that I needed a secondary account that my son could log into. At this point he plays web games on well known sites, under frequent supervision. One thing that's important to him is a sense of independence, so having a foolproof method to start the computer and get logged in was key.</span></div>
<div dir="ltr" id="docs-internal-guid-c2972933-0abe-fb24-60c5-75dbda1a21b8" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br /></span></div>
<div dir="ltr" id="docs-internal-guid-c2972933-0abe-fb24-60c5-75dbda1a21b8" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">You could potentially use the same idea if you wanted to have a guest account, or if you were setting up a machine for a friend or relative who was less computer savvy, or perhaps just your own convenience.</span></div>
<div dir="ltr" id="docs-internal-guid-c2972933-0abe-fb24-60c5-75dbda1a21b8" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" id="docs-internal-guid-c2972933-0abe-fb24-60c5-75dbda1a21b8" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">This left me with two goals:</span></div>
<ul>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Create a low-privileged account</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"> </span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Make sure that account can log in automatically </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"><br /></span></li>
</ul>
<div dir="ltr" id="docs-internal-guid-c2972933-0abe-fb24-60c5-75dbda1a21b8" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" id="docs-internal-guid-c2972933-0abe-fb24-60c5-75dbda1a21b8" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Setting Up A Secondary Account </span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Menu->Control Center->Users and Groups.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Click the Add button.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Type a name and click OK.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Type in a password twice and click OK.</span></div>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Set That Account To Log In Automatically </span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Menu->Control Center->Login Window</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Click the Auto Login tab.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">There are two options: One will log in a user automatically immediately, the other will log them in after a set amount of time. I like the timed option because it gives me the chance to log into my account instead if I'm using the machine. Here's how you do the rest:</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Check the box, pick the secondary account out of the list, and if you’re using the timed option, set the number of seconds to wait before that account is auto-logged in.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">The lowest possible time for this setting is 10 seconds.</span></div>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Click Close.</span><br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">That's it. The secondary account will now automatically be logged into when the machine starts. Low-privilege is the default setting, so there was no need to mess with the default account settings when it was created. Note that the account still has a password; I would never recommend setting up an account that lacked a password, nor would I recommend setting up automatic login on a laptop that I carried around to work or school. Furthermore, I would not recommend turning on this option on any account with high-level privileges; even though Linux Mint is good about requiring your password to do anything potentially harmful, there's no need to ask for trouble when setting up a secondary account is so easy.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><br /></span>Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-48927585463428433652014-07-17T10:36:00.000-07:002014-07-17T10:36:22.567-07:00Verizon's New Weird Trick To Prevent TetheringYou may recall that Verizon lost a court case that forced them to allow tethering and wi-fi hotspot apps for users who do not have unlimited data. Or did it?<br />
<br />
Here's one of the articles that describes the ruling:<br />
<a href="http://www.zdnet.com/let-my-wi-fi-go-fcc-rules-verizon-cant-charge-for-wi-fi-tethering-7000001916/">http://www.zdnet.com/let-my-wi-fi-go-fcc-rules-verizon-cant-charge-for-wi-fi-tethering-7000001916/</a><br />
<br />
Verizon, for its part, hasn't given up trying to charge for this feature. They found a loophole.<br />
<br />
Their current strategy: comply with the letter of the law, but not the spirit. <br />
<br />
Their new trick is a multi-pronged plan:<br />1. Allow users to download third party wi-fi hotspot programs in order to comply with the ruling. The ruling only forced Verizon to assert that "it no longer
objects to the availability of the tethering applications to C-Block
network customers”. Which, by allowing users to download such programs, they technically comply with.<br />
2. Release Android operating system updates that are specifically customized to prevent third party wi-fi apps from actually enabling a wi-fi hotspot on the phone. These apps can be installed and run by the users, but they don't do anything.<br />
3. Continue to charge a monthly fee for enabling the wi-fi hotspot functionality that is integrated into the Android OS, offering users a single alternative: upgrade to a [more expensive] plan that includes the hotspot function.<br />
<br />
The only recourse for the customer: root the phone and replace the operating system, which voids any warranty the customer may have had.<br />
<br />
Verizon doesn't have much to lose. The settlement resulted in a fine that amounted to a mere slap on the wrist. $1.25M is almost certainly less than the amount that they make annually from users duped into paying the extra fee. Any future ruling represents an insignificant risk, well worth flaunting for the ability to continue to fleece customers out of another $20 a month for data that they already pay for.<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-44206179250455620792014-06-09T23:20:00.000-07:002014-10-13T11:14:16.622-07:00LMT#2 - Fixing Xbox 360 Controller Input in Steam For LinuxLinux Mint Tips #2: Fixing Xbox 360 Controller Input in Steam For Linux<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">Linux Mint Tips series is a list of tricks I've picked up after having switched away from Windows for good in 2013, after dabbling for years. I'll do my best to go back and edit posts that contain any erroneous information, but keep in mind that I'm a relative newcomer to the Linux scene. I wrote this tutorial running the MATE desktop environment in Mint 16.</span></span><br />
<br />
I ran into trouble in Steam for Linux getting my controller working. Though its a cheapo Gamestop knockoff, it is Xbox 360 compatible, which should mean it'll work on just about any PC these days no matter what OS its running. One of the benefits of the long life of the last console generation has been the driver support for these ubiquitous controllers; I wouldn't be surprised if there were an Xbox 360 controller driver for OS/2 Warp at this point. I figured it would work straight out of the box in Mint 16, but unfortunately that wasn't the case. Even though the controller was clearly powered up, Steam games didn't recognize it and even the Steam controller configurator widget couldn't fix the issue.<br />
<br />
The good news is that it only took a short bit of research to fix the issue. Here's the steps I ended up taking to fix it.<br />
<br />
<ul>
<li>Open Software Manager.</li>
<li>You'll need to enter the password for your elevated/Admin account.</li>
<li>Search for jstest-gtk.</li>
<li>It should be the top item, with the subtitle "Joystick testing and configuration tool".</li>
<li>Double click on that item.</li>
<li>Click on the install button.</li>
<li>When it finishes, close out of software manager.</li>
<li>Open a terminal window.</li>
<li>Type jstest-gtk and hit enter.</li>
<li>This will bring up the configuration tool. Your Xbox 360 compatible controller should already be listed.</li>
<li>Click the properties button.</li>
<li>You can now test the various inputs, thumbsticks, buttons and so forth.</li>
<li>If you find that some of the inputs aren't mapping properly, click the Mapping button. Here you can drag items around and watch for the effects in the properties window.</li>
<li>Once you've gotten everything lined up, you can save the profile in the properties dialog using the button next to the dropdown box in the upper section.</li>
</ul>
<br />
Now for the Steam portion.<br />
<br />
<ul>
<li>First, open Steam and change to Big Picture mode. You can select this option by right clicking on the Steam notification icon or by clicking the Big Picture option in Steam in the upper right side in just about any Steam screen.</li>
<li>Once Big Picture mode starts, click on Settings in the top right (the gear icon).</li>
<li>Click on the Controller option.</li>
<li>Click the Edit Controls button.</li>
<li>You should now be taken through a first time setup tutorial. Follow the prompts and push the correct button/input at the correct time.</li>
<li>When finished use the Save option.</li>
<li>It will ask you to upload, but you can decline to upload it and just save it locally.</li>
</ul>
You're now finished, your gamepad should work in Steam games now!<br />
<br />
Hopefully this helps somebody out there. Happy gaming.<br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span>Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-51249267424428892722014-01-03T21:14:00.000-08:002014-10-13T11:17:02.649-07:00LMT#1 - Using Driver Manager To Update Nvidia DriverLinux Mint Tips #1: Using Driver Manager To Update Your Nvidia Driver<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">This is the first in a series of posts I'll be making about my journey switching over to Linux Mint from Windows. As I pick up tips and tricks, be they sublime or mundane, I'll be posting them here. I'll do my best to go back and edit posts that contain any erroneous information, but just beware that even though I've been tinkering with Linux off and on for years, this is my first serious foray into completely abandoning Windows. As such, there are a number of items in this series that are things that I'm doing in Linux for the first time, such as games, TV tuning, and more.</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br /></span></span>
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">I wrote this tutorial running the MATE desktop environment in Mint 16.</span></span><br />
<br />
As this new machine that I built is going to be primarily used for games, the first thing I wanted to find out was how to update my driver to the latest version manually. Though I haven't figured that out yet, what I <i>have</i> figured out how to do is install a newer version than what comes bundled in Mint by default.<br />
<br />
Note: This fix resolves the problem with Steam for Linux where it reports that "OpenGL GLX context is not using direct rendering, which may cause performance problems".<br />
<br />
Here's how to use Driver Manager:<br />
Click on Menu, and type driver manager in the search box, then hit enter.<br />
or<br />
Click on Menu, click on Control Center, scroll down to the Other section, click on Driver Manager.<br />
<br />
Once you've provided your password, Driver Manager will start. Click on the radio button next to the recommended driver and then click the Apply Changes button.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVL2-xgBTypG1_VfG0Uj7BS4Wbdxv3Oy7AzMmNrtKHinFkX78nbPKVhFTszmtOlkLvIIfCJQAv90lwFdNJ9StSm-TuMLj1MHn2P_jadXZShlL5pH281IFlg4rDoB-Wkc8lWGyob_0dZ3gx/s1600/2014-01-05-LMNL001-01-Driver+Manager.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVL2-xgBTypG1_VfG0Uj7BS4Wbdxv3Oy7AzMmNrtKHinFkX78nbPKVhFTszmtOlkLvIIfCJQAv90lwFdNJ9StSm-TuMLj1MHn2P_jadXZShlL5pH281IFlg4rDoB-Wkc8lWGyob_0dZ3gx/s1600/2014-01-05-LMNL001-01-Driver+Manager.png" height="251" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Driver Manager in action on Mint 16</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
After it completes installing, click the x to close.<br />
<br />
That's it. Kudos to the Linux Mint folks for making this a painless process.Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-45276265004034303222013-09-20T15:44:00.000-07:002013-09-20T15:44:40.073-07:00On the death of the real money auction house<a href="http://www.polygon.com/2013/9/17/4741452/blizzard-removing-gold-and-real-money-auction-houses-from-diablo-3">RIP (on March 18th), real money auction house</a>.<br />
<br />
I have always felt that the Diablo III real money auction house strategy reeked of corporate market-droid meddling. To be honest, its inclusion was far more likely a function of who the company has chosen to hire/promote to lead projects than actual requirements that came down from on-high; but as a consumer, this type of decision has never <i>felt</i> that way. Sadly, the effects are the same; someone with decision making power ends up pushing for the inclusion of revenue generators that are detrimental to the games themselves.<br />
<br />
Kudos to Blizzard for realizing their mistake and making a course correction. Apparently the "new era" of game revenue that many heralded at the launch of Diablo III will have to wait for some other game to carry the torch. The death bell is tolling for now, but this sort of "take a cut of in-game, real money transactions between players" feature is bound to return when some other studio takes a crack at it.<br />
<br />
I'm not entirely unsympathetic. Blizzard is faced with a problem endemic to the AAA industry: namely that some customers are willing to pay much more for an extended or enhanced experience, but the ability to capitalize on that is difficult in an industry machine that has been geared towards treating all customers the same. The real money auction house was an interesting stab at solving that problem, but ultimately one that has failed. What remains to be seen is whether that was due to poor execution by Blizzard or that the idea itself is fatally flawed.<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-73725533171540965752013-07-05T14:39:00.000-07:002013-07-05T14:39:07.089-07:00ThereIFixedIt: Knockoff 360 Controller Thumbstick FixA while back, I was given a third party xbox 360 wired controller as part of a gift. (thanks bro!)<br />
<br />
After a short while of use, it developed an issue where one of the thumbsticks was very difficult to use because its cover had ripped. During the most critical part of whatever game was being played, the cover would choose that moment to strike. It would flap around like a useless appendage, mocking me and ensuring my doom in that game was sealed.<br />
<br />
At first I tried gluing it with super glue, which failed miserably. The rubberized material is just too flexible, and I don't think the glue ever adhered properly.<br />
<br />
Then I hit upon an idea; an idea which not only works perfectly, but looks so gloriously haphazard that I had to post it: I sewed it shut.<br />
<br />
<a href="http://www.flickr.com/photos/harborpirate/9219239338/" title="ThereIFixedIt by harborpirate, on Flickr"><img alt="ThereIFixedIt" src="http://farm8.staticflickr.com/7317/9219239338_3e85716211_z.jpg" height="361" width="640" /></a>
<br />
<br />
There, I fixed it! Or, perhaps more appropriately: #ThereIFixedIt.Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com1tag:blogger.com,1999:blog-6693410132682651801.post-82922579455686981562013-07-03T18:06:00.001-07:002013-07-03T18:06:18.723-07:00Why I Chose To Defy The LinguistsWhen working on a <a href="http://harborpirate.blogspot.com/2013/07/first-stackoverflow-answer-posted.html">recent post</a>, I came across a little bit of trivia: rack vs wrack.<br />
<br />
Particularly interesting was this item: http://grammar.about.com/od/alightersideofwriting/a/rackwrackgloss.htm<br />
<br />
Though the general advice of linguists appears to be to use the form Rack and Ruin or Nerve-Racking, I chose to use the form Nerve-Wracking. The reason is simple; rack is an overloaded verb, whereas wrack is not.<br />
<br />
When I think of "to rack" something, I think of organization. Racking billiard balls, primarily. What I don't think of is the destructive term which is primarily associated with the medieval torture device "The Rack". We don't have that kind of rack anymore, so it seems silly to use that as the basis for the modern verb.<br />
<br />
Should I wrack my brain, or rack it? The answer seems simple to me: one is [thinking so hard you're] hurting it, whereas the other is [thinking so hard you're] placing it into some kind of organizational box; at least if you go by the primary meaning.<br />
<br />
That said, such a rule would go counter to accepting that most people cannot remember when to use "except" versus "accept". I think the linguists have just given up, and are desperately picking their battles, hoping that "sumday were not left wit nuthin but a shell of english that we should of protected".<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-63196028703987717762013-07-03T17:29:00.001-07:002013-07-05T14:43:09.087-07:00First StackOverflow Answer Posted (Consuming RESTful Services in C#)I've been meaning to do this for years, but its nerve-wracking* to put yourself out there, even when you feel you have something valuable to add to the discussion. This is especially true for me in places such as Stack Exchange/Overflow, where the prevailing social norm is to post under your Real Name.<br />
<br />
Anyway, after circling round the Internet for a while on the correct way to consume a RESTful web service in C#, I finally bit the bullet and decided to answer a question with the updated information that I eventually found.<br />
<br />
Here's a link to my response:<br />
<a href="http://stackoverflow.com/a/17459045/2548115">http://stackoverflow.com/a/17459045/2548115</a><br />
<br />
I figured, the best thing I can do is post the answer I wished would have been there when I first found the question, because that would have saved me time. Hopefully it does just that for anyone else that stumbles across it.<br />
<br />
*Interesting tidbit I ran across when researching how to spell this phrase. <a href="http://harborpirate.blogspot.com/2013/07/why-i-chose-to-defy-linguists.html">Here's a blog post on nerve-racking verses nerve-wracking, just for fun</a>.Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-86807713004611867502013-06-02T19:26:00.000-07:002013-06-02T19:26:07.339-07:00Enabling Linux Mint 15 Wireless on Dell E1505Good news! The process that I posted for getting wireless working on a Dell Inspiron E1505 for Mint 14 also works for Mint 15 as well. Here is a handy link if you need it:<br />
<a href="http://harborpirate.blogspot.com/2012/12/enabling-linux-mint-14-wireless-on-dell.html">http://harborpirate.blogspot.com/2012/12/enabling-linux-mint-14-wireless-on-dell.html</a><br />
<br />
For the step after that, setting up the connection to your wi-fi, is a bit trickier than it used to be. It hides "unused" connection types now.<br />
<br />
After you've followed the instructions in the link above, here's how to get the rest of the way:<br />
<ul>
<li>Right click on the connections icon in the tray and click Edit Connections. </li>
<li>Click the Add button. </li>
<li>Click on Wi-Fi in the list. </li>
<li>Click the Create button. </li>
<li>Give the connection a name that is meaningful, like "home" or "work" or whatever. </li>
<li>Type in your SSID (this is the SSID value of your router, which your other machines probably autodetected for you). SSID is case sensitive. </li>
<li>Click on the Wi-Fi security tab. </li>
<li>Pick the correct authentication type (probably WPA & WPA2 Personal). </li>
<li>Type in your password. </li>
<li>Click the Save button.</li>
</ul>
Your battle-station should now be fully armed and operational.<br />
Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com1tag:blogger.com,1999:blog-6693410132682651801.post-257672455394806742013-05-06T21:53:00.003-07:002013-05-06T21:53:44.051-07:00Rot.jsI finally had a chance to look through Rot.js a little bit. For anyone not familiar, Rot.js is a roguelike engine written in JavaScript. <br />
<br />
It is an interesting little piece of kit, and <a href="http://ondras.zarovi.cz/games/trw/">The Royal Wedding</a> example does a nice job of showing off all the various things it is capable of.<br />
<br />
There are a few features that I would like to see added, though. My biggest wish would be for graphical tile support, followed closely by 100% deterministic mode where all randomness determined is by initial seed + player input (which allows for easily creating a replay system as well as shareable "challenge seeds").<br />
<br />
Github for Rot.js:<br />
<a href="http://ondras.github.io/rot.js/hp/">http://ondras.github.io/rot.js/hp/</a><br />
<br />
I might fork it and give adding some features a shot sometime.<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-51536746640082399272013-03-16T12:36:00.000-07:002013-03-16T12:36:52.000-07:00Seven Day Roguelike 2013 pt.7Failure.<br />
<br />
After some more tweaking this morning, it is clear that this project needs a lot more than 7 days, at least for me. I've had a busy week that just didn't allow for enough coding opportunity.<br />
<br />
What I've ended up with is a game that still feels far too much like Brogue, but has removed most of the fun from that game.<br />
<br />
I'm probably going to keep working on this project from time to time. I want to see if I can get the core gameplay mechanic to revolve around hunting creatures for food, while avoiding being killed by the tougher creatures of the deeps.<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-56117511002783592382013-03-15T00:31:00.002-07:002013-03-15T00:31:37.910-07:00Seven Day Roguelike 2013 pt.6I finally found the bug that I introduced, and removed it. Monsters are trying to hunt down and kill the player again. <br />
<br />
I still need to add visible monster corpses though, and I need to add monster eating behaviors, like being full making them less likely to attack, and eating distracting them from trying to follow the player. (Not to mention more advanced stuff like gobbos hauling kills back to camp.)<br />
<br />
Right now I'm messing with the architecture code to try and make the cavern levels follow my general plan: the catacombs, the cave river, the cavern forests, the underground meadows, and the lakes of the deeps. I'm trying to decipher how the existing code leverages the blueprint objects to generate interesting level pieces.<br />
<br />
After messing with it a bit though, my biggest concern is that, in the state its in right now, it just isn't much fun. I'm hoping that as I continue to add my own flair to it, and increase the amount of interaction between items and the environment, the fun will start to emerge; but I don't feel that is a certainty.<br />
<br />There's really way too much to do in the final day tomorrow. It is likely that I'm going to fail, but I'm glad that I've given it a shot.<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-23951689531415842032013-03-13T22:08:00.001-07:002013-03-13T22:08:41.568-07:00Seven Day Roguelike 2013 pt.5A little bit more progress on Rational Brogue; I've got prey animals running from the player. The effect is pretty great when you run through a group of them. Unfortunately, once they get away, they all run together, so it looks a bit silly when chasing them.<br />
<br />
I also managed to break all of the predator creatures, they don't want to move anymore, which is a huge bummer.<br />
<br />
One step forward, two steps back.Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-17372733388694586782013-03-12T20:43:00.001-07:002013-03-12T20:43:25.954-07:00Seven Day Roguelike 2013 pt.4I've made a couple of changes that have started to make the game feel a bit more like what I intend.<br />
<br />
For one, I've reduced the HP of the player by two thirds. This has revived the dangerous feeling of the caverns a bit after I've taken the teeth out of just about everything down there in search of my goal.<br />
<br />
Secondly, I've modified some of the animal behavior in very simple ways. Predators will now take attacks of opportunity against prey creatures, though they won't hunt them yet. Prey creatures will try to stay away from the player, though unfortunately they still retain the need to hunt the player, so they're eternally torn in a foolish dance that eventually just gets them killed.<br />
<br />
I've got a long way to go...<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-45633140268616369032013-03-10T20:36:00.000-07:002013-03-10T20:37:15.166-07:00Seven Day Roguelike 2013 pt.3<b>Minor Success</b><br />
I've managed to get the menu updated. It wasn't as hard as I thought it might be, though I spent a lot... Actually, lets be honest, way too much time messing with it to get it just right. In the end, I think it turned out pretty nice.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLxOQmxNoW07XkpMUedKxiGWJVEo2svicdlS5WGLNdKp_v5ciSTihQO61NcnXQsKSv0cPs0uM6L0dkX786mI4C2M4702k6Z5whjRew5NkxVysf5PQd8jfQPKYk0Ks2c_8Bu8i8ABUCdqZn/s1600/02+-+Second+Logo+Attempt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLxOQmxNoW07XkpMUedKxiGWJVEo2svicdlS5WGLNdKp_v5ciSTihQO61NcnXQsKSv0cPs0uM6L0dkX786mI4C2M4702k6Z5whjRew5NkxVysf5PQd8jfQPKYk0Ks2c_8Bu8i8ABUCdqZn/s1600/02+-+Second+Logo+Attempt.png" height="196" width="320" /></a></div>
<br />
But that has distracted me from doing more important stuff like overhauling the entire AI system. All I've done so far is remove a bunch of creatures from the creature list.<br />
<br />
Oh, and that wasn't my first attempt at a new logo, by the way. My first attempt ended up looking pretty horrible:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnM-ByDS7iFKjQjukPp7NzaPn-LF1eNAEytaF05hXucGfM1LAYkxWTGwGR2ZUv_E77r6Q70JoPtyo9cT7fEgCmkqaOjIyEGg45zCRVtOGyhZqdTHLMEsPjbCUWwummZsff66KYtVl0qenS/s1600/01+-+First+Logo+Attempt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnM-ByDS7iFKjQjukPp7NzaPn-LF1eNAEytaF05hXucGfM1LAYkxWTGwGR2ZUv_E77r6Q70JoPtyo9cT7fEgCmkqaOjIyEGg45zCRVtOGyhZqdTHLMEsPjbCUWwummZsff66KYtVl0qenS/s1600/01+-+First+Logo+Attempt.png" height="196" width="320" /></a></div>
<br />
Now its back to code!Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-20774242349461757702013-03-09T14:46:00.000-08:002013-03-09T14:46:10.304-08:00Seven Day Roguelike 2013 pt.2<b>The Good</b><br />
After a few missteps, I managed to brush away the cobwebs in the back of my mind and grab the golden idol called "how in the heck to get Brogue to compile", and bring it back to the surface. After a bit more mucking about, I've actually gotten it to build with only a few small warnings spit at me by the compiler. Yay!<br />
<br />
I was even able to merge in a couple of changes that I had previously proposed.<br />
<br />
So, my build is now exactly like Brogue 1.72, except that this one gives you a message if monsters wake up, and it also allows you to use the 'a' key to equip and unequip. This means that the 'a' key can be used for any object in the game. If there are any exceptions to that last statement, they won't last long once I start paring everything down.<br />
<br />
<b>The Bad</b><br />
Yeah, after building it, I just realized that modifying the title screen is probably going to be a huge pain; and that if I'm not able to mod it, I probably won't release it. <br />
<br />
<b>Next Steps</b><br />
I need to start removing all of the extraneous monsters and items out of the game so that I can get to a working core.<br />
<br />Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-10443008675320812682013-03-09T12:12:00.001-08:002013-03-09T12:12:32.777-08:00Seven Day Roguelike 2013Announcing my first seven day roguelike, [name to be determined later].<br />
<br />
I'm starting with a working copy of Brogue 1.72. <br />
<br />
This is a total conversion of Brogue. I want to investigate whether a rational world can still make for a fun roguelike. My intent is to create a world in which creatures behave rationally, in relation to both the player and each other, and in which the entire ecosystem of the dungeon is logical. Success will mean rebuilding the dungeon generator, a complete monster AI retrofit, changing most of the monster menagerie, changing a lot of the items, and modding the combat mechanics.<br />
<br />
Here's a quick rundown of the most important changes that I'd like to make:<br />
<br />
<b>Rational Ecosystem</b><br />
The world should be believable in that, when I enter the caverns, I should believe that this world could exist without me. Rats, for instance, should not attack me. Rats are scavengers; they should scatter when I come near and should opportunistically eat anything left behind. They should be a food source for other things, like jackals and so forth. One of my goals is that players should be able to see, throughout their travels, how exactly these creatures survive in the underground.<br />
<br />
<b>Creature Behavior</b><br />
Creatures will no longer cooperate with one another unless they are part of the same pack or society. Many creatures will run in fear from the player immediately, or only approach you cautiously. Creatures will often hunt each other rather than bother with the player, the thing with all the pointy sticks.<br />
<br />
<b>Accounting For Nutrients</b><br />
I'm going to be modifying the dungeon generator so that it generates terrain that supports enough plant life and other nutrients that all of the other creatures in the food chain can realistically survive. The number of creatures at the top of the food chain must derive from the amount of food available to them. I can't have levels with sixteen dragons in them unless there are are an astounding number of prey creatures on that level for all of them to eat.<br />
<br />
<b>Player Advancement</b><br />
Like Brogue, this game does not reward experience points for combat. In fact, my intent is that the game will not have any sort of experience points at all. Player advancement will be driven entirely from items that are collected. Speaking of which:<br />
<br />
<b>Realistic Item Distribution</b><br />
Items will not be found just strewn about randomly. All items will be found in one of three locations:<br />
<ul>
<li>On the body of a dead adventurer</li>
<li>In some sort of cache, either from previous or current occupants</li>
<li>On the person of some creature that would reasonably carry it </li>
</ul>
I have some other goals in mind as well, but if I manage to get as far as the above, I'll be happy and consider it a success.<br />
<br />
More to come later.Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-28151745627845930732013-01-03T21:57:00.000-08:002013-01-03T21:57:01.016-08:00Why Those That Watch The Hobbit Before Reading It May Be Disappointed<p>The Hobbit, the book, is a whimsical story; one in which songs and poems make up part of the narrative, and one in which the author occasionally cautions us not to be frightened. It is the perfect sort of story to be read aloud to a six or seven year old who is just opening their mind to the fantastic and strange; to the amazing power of fiction to awaken us to worlds that never existed. It wasn't written grim-dark and it was never intended to be A Serious Piece Of Dramatic Lit. Anyone looking for either of those will be disappointed. For more than a decade, I have read The Hobbit and the Lord of the Rings series at least once a year as a way to rekindle my creative juices.
</p>
<p>Tolkien was an expert in old and archaic words, his texts are laden with them. They provide not only an amazingly rich linguistic tapestry but also a sense of weight and age that subsequent imitators have not matched. I have read that no word is used in the Lord of The Rings which had existed in some form for less than 400 years. Whether that is true, I have been unable to verify, but professor Tolkien, steeped deeply in the knowledge of linguistics, and delighting in discovering their use and etymology, would have been the one to do it.
</p>
<p>Much has been said about the lack of characterization in these books; that they are mere cardboard stand-ups or ghostly apparitions only pretending at true depth. This may be true; and I find myself not a very fit judge for making such a determinations as my peculiar personality comes into play. I care not for the machinations of characters, for whether I can identify with the motivations of a particular character, or for whether a particular character is "deep" or "multifaceted". I've never been particularly good at understanding other people, or talking to them for that matter. Plotting and scheming do not impress me, long soliloquies and heavy dialog I find obstacles to be overcome, rather than a source of delight or enjoyment.
</p>
<p>If you approach The Hobbit with the mindset of the movie, one which (mostly) takes the world of Middle-Earth very seriously, I think you'll find the book to seem quaint and childish. Beneath that whimsical exterior lies a deep world described in amazing detail by an author extremely adept at his craft, but those who do not connect easily with setting description and the characterization of nature may miss this entirely. The book is written for a particular audience, and many future generations may find that it is not at all what they expect after having seen the films first.
</p>
Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-87764307829797234402012-12-31T14:00:00.002-08:002012-12-31T14:00:34.782-08:00Wistful ThinkingMaybe someday, I'll be able to afford a tiny place on the outskirts of Bozeman, or somewhere like it, for the summer. A small college mountain town in the summer is just about the best place I can imagine. Most of the college kids take off, leaving mostly friendly people and a town just big enough to have everything you really need without all the garbage that you don't. Spectacular, spectacular views from pretty much anywhere in town. Minutes from mountain trails, rivers, and streams where you can forget that you live on a planet with 7 billion people; or anyone at all for that matter. That's what I miss the most, being able to quickly get to the wilderness and tap into the kind of still and quiet that resets all of your normal operating parameters. I miss the mountains, always there, looming higher than any building, calling to you, reminding you constantly that stressing is a useless waste of time; that they care not for the petty drama of humans and neither should you.Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com0tag:blogger.com,1999:blog-6693410132682651801.post-19469767256256378712012-12-16T00:11:00.000-08:002013-06-02T16:22:46.387-07:00Enabling Linux Mint 14 Wireless on Dell E1505<br />
Mostly I'm saving this off so if I ever have to get wireless in linux working on this machine again, I'll know how to do it. I hope that it saves someone else the 5+ hours it took me to solve this.<br />
<br />
<pre class="alt2" dir="ltr" style="border: 1px inset; margin: 0px; overflow: auto; padding: 6px; text-align: left;"># Open a terminal window and run this:
sudo apt-get update
sudo apt-get remove bcmwl-kernel-source
sudo rm /etc/modprobe.d/blacklist-bcm43.conf
# If the blacklist-bcm43 file does not exist, don't sweat it.
# Now you need to comment out bcm43xx in /etc/modprobe.d/blacklist.conf
# In its place you will need to add blacklisting of ssb_hcd and ssb
# So do this launch the editor that comes with Mint 14 to the conf file:
sudo pluma /etc/modprobe.d/blacklist.conf
# And in the editor, change this:
blacklist bcm43xx
# To this:
blacklist ssb_hcd
balcklist ssb
# save and close.
# Now run these to install the correct driver and firmware:
sudo apt-get install b43-fwcutter
sudo apt-get install firmware-b43-installer
# After installing b43-fwcutter, make sure to REBOOT your PC!!
# When you're back up, run the following Terminal commands:
sudo modprobe -r b43 b44 b43legacy ssb
sudo modprobe b43
sudo modprobe b44
# Then RETEST wireless. (Fn+F2 should re-enable it and turn on the wifi LED).
# If the LED comes on, you're home free.
# Right click on the network connection thing in the tray
# and use the wireless tab to hook up to your router.
# These settings should all stick when you reboot.</pre>
<br />
Special thanks to <a class="bigusername" href="http://ubuntuforums.org/member.php?u=322753">dwhitney67</a> for getting me 95% of the way there in this thread: http://ubuntuforums.org/showthread.php?t=2017612<br />
Most of the text is copy-pasted from there, with a few very important tweaks without which the process does not work.Anonymoushttp://www.blogger.com/profile/05451351039251862116noreply@blogger.com3