Holy cow prices on SSDs are dropping like a rock this year!
I just found this deal on Slickdeals on a 500GB Crucial BX100 SSD. It's only $134.99 with free shipping. If you look on camelcamelcamel, this drive was $200 back in January.
It was only about 4 months ago I picked up a 180GB Intel drive for my laptop for around $80.. but you regularly see 256GB drives for under that now. I wonder what kind of deals will show up for Black Friday this year? Maybe by next spring we will see 1TB drives for under $200?
Exciting times for sure.
Wednesday, October 14, 2015
Tuesday, January 6, 2015
GULEEK i8 Windows 8.1 mini pc
This is probably the neatest thing I've seen in a while. This is a full computer with a quad-core Intel Atom processor, 2GB RAM and a 16GB SSD. The power connection is a MicroUSB port. It has HDMI, audio out, 2 USB 2.0 ports, built in wifi and a port to add a MicroSD card. All of this for $104 from dx.com. [Link]
From what I've read, the version of Windows 8.1 it runs is a special Bing version that is either free or really cheap for the manufacturer. It is from China so it's nice that it's not a pirated version at least. The word on Linux compatibility is that it isn't, so far.
This device has a 3,000mah battery integrated as well so it can run for a time without being plugged in. I'm not sure what the run time is at this point. The dx page shows it being run headless with an Android tablet controlling it. I'd assume you can do the same thing with IOS and Windows tablets using a remote desktop application.
This liliputing.com article about this device mentions a Vensmile iPC002 system that is very similar but with a larger capacity battery and double the built in storage. This is typical for Chinese products to have a lot of nearly identical looking products from different companies that may or may not have different specifications.
It'd be pretty nice if one of these companies brought out one with the ability to upgrade with a M-SATA or similar SSD card.
I could think of a number of uses for a device like this:
- Low power NAS device with external hard drives.
- Thin-client replacement.
- Kid's first computer.
- Backup system, in case your main one breaks.
- Wearable computer, possibly useful with the Oculus Rift headset.
- Robotics.
- 3D printer computer.
Intel Atom processors aren't known for their processing performance. This is still limited compared to even a Celeron, but in many cases it might have enough horsepower to do a necessary task.
Friday, May 30, 2014
Update Grub 2 options
As a follow up to my previous post Ubuntu Server 14.04 fun I was asked how to update the Grub2 file. It's really very easy. Use a text editor to open /etc/default/grub like so:
Then find the line that says
If you do use nano then you can press Ctrl-o and Ctrl-x at this point to write and exit.
Then run this command:
and that should do it.
sudo nano /etc/default/grubThen find the line that says
GRUB_CMDLINE_LINUX_DEFAULT="" and add nomodeset inside the quotation marks.If you do use nano then you can press Ctrl-o and Ctrl-x at this point to write and exit.
Then run this command:
sudo update-gruband that should do it.
Thursday, May 29, 2014
Make Raspberry Pi (and other SBCs) report it's IP address when it starts up.
You can also track power on events and other information in this way. First, create a script, let's call it reportip.sh:
#!/bin/bash
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
result = ""
printf -v result "192.168.1.2/rpi.php?id=pi-R&ip=%s" "$_IP"
echo "$result"
curl -u username:password $result
fi
What's going on here?
First it gets the IP address and assigns it to a variable $_IP.
It displays a message so if you do happen to have a display plugged in then you'll see what the IP address is without logging in.
It builds a $result variable that is a url. In this case I have a fictional web server at 192.168.1.2, a PHP script called rpi.php runs on it that can take some values and log them to a database. This is a very simple script that is setup to log to a SQLite database but could easily be rewritten to point to MySQL or your favorite database.
It then uses curl to call upon that url in order to set things in motion. I'm using the -u switch to specify a simple digest username and password.
Then you can put this into your /etc/rc.local
This is wildly insecure if you leave it in a user's home directory since whatever is in the script will be executed with root privileges on startup so don't do that in your day job. You can run it with
Once this is setup then every time your pi starts, it will get an IP and then hit your server to report what IP it got. Then you can go to that page and see what it is.
I actually need to rewrite that PHP script, it was lost in a hard drive crash earlier this year. Look for it soon, I will put it up on my GitHub account.
sudo -u username /home/user/reportip.sh to run it with lesser privileges or put it elsewhere.Once this is setup then every time your pi starts, it will get an IP and then hit your server to report what IP it got. Then you can go to that page and see what it is.
I actually need to rewrite that PHP script, it was lost in a hard drive crash earlier this year. Look for it soon, I will put it up on my GitHub account.
Thursday, April 24, 2014
Ubuntu server 14.04 fun
Recently lost a system drive in the AMD E350 based computer I use for various file server, database, test web server and other roles in my home network. The new drive came in the mail today so I decided to try to install the new Ubuntu server to it. I used the built-in LVM support that exists in the CLI installer now. Last time I had to do that by hand so it was a nice improvement.
Long story short, on boot up I was encountering an apparent hang or freeze once it was trying to initialize the swap space.
The most frustrating part of this is that the only reference I found to someone having the same problem online wasn't any help at all.
Then I discovered that in the recovery console I was able to see an IP and it was on my network just fine. So on the next reboot I tried connecting to it over SSH after it "froze" on me. I was able to connect and login and even use it as if nothing was wrong! The dmesg log shows the boot process continuing on from the above point as well.
Some research later and I found that if you add
tl;dr? If you're having problems with Ubuntu appearing to freeze during the boot process.. try booting with
There's a nice description of what nomodeset does here: link
Long story short, on boot up I was encountering an apparent hang or freeze once it was trying to initialize the swap space.
[ 3.490158] firewire_core 0000:06:02.0: created device fw0: GUID 001e8c000042dc3f, S400
[ 3.616414] random: lvm urandom read with 30 bits of entropy available
[ 3.671945] bio: create slab <bio-1> at 1
[ 3.843667] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[ 4.026158] Switched to clocksource tsc
[ 4.460003] init: plymouth-upstart-bridge main process (183) terminated with status 1
[ 4.462054] init: plymouth-upstart-bridge main process ended, respawning
[ 4.470931] init: plymouth-upstart-bridge main process (194) terminated with status 1
[ 4.472846] init: plymouth-upstart-bridge main process ended, respawning
[ 4.482749] init: plymouth-upstart-bridge main process (196) terminated with status 1
[ 4.484555] init: plymouth-upstart-bridge main process ended, respawning
[ 4.493858] init: plymouth-upstart-bridge main process (198) terminated with status 1
[ 4.495605] init: plymouth-upstart-bridge main process ended, respawning
[ 4.503723] init: plymouth-upstart-bridge main process (200) terminated with status 1
[ 4.505317] init: plymouth-upstart-bridge main process ended, respawning
[ 4.516120] init: plymouth-upstart-bridge main process (201) terminated with status 1
[ 4.517821] init: plymouth-upstart-bridge main process ended, respawning
[ 4.552321] init: plymouth-upstart-bridge main process (203) terminated with status 1
[ 4.553990] init: plymouth-upstart-bridge main process ended, respawning
[ 5.143395] random: nonblocking pool is initialized
[ 5.480640] Adding 7970812k swap on /dev/mapper/ubuntu--vg-swap_1. Priority:-1 extents:1 across:7970812k FS
The most frustrating part of this is that the only reference I found to someone having the same problem online wasn't any help at all.
Then I discovered that in the recovery console I was able to see an IP and it was on my network just fine. So on the next reboot I tried connecting to it over SSH after it "froze" on me. I was able to connect and login and even use it as if nothing was wrong! The dmesg log shows the boot process continuing on from the above point as well.
Some research later and I found that if you add
nomodeset to the kernel settings before it boots then it will continue on to the login prompt normally. I'm sure, now, that when it appears to freeze that's when it is actually switching to a video mode that is not working correctly on my hardware. This is probably not a very common problem which is why I don't see many other people talking about it online.tl;dr? If you're having problems with Ubuntu appearing to freeze during the boot process.. try booting with
nomodeset in your kernel options!There's a nice description of what nomodeset does here: link
Sunday, November 10, 2013
Things a PC guy is learning about Macs
I've recently bought a used iMac from ebay in order to learn more about these computers. I've learned a few things since buying it. I'm hoping to post on here from time to time various tidbits that I've learned. The ultimate goal is to become certified as Apple Certified Support Professional.
The windowing concept in Mac OS is a little different from Windows, or even X Windows. If you hit the red button at the top left of a window, it doesn't close the application. There's a doc at the bottom of the screen with several common applications, and any running applications. If you look under/in front of an application and see a blue light, that's your indication that the program is still running. Even if there are no open windows, a program will continue to run until you exit it. Two ways that I know about include going to the menu at the top when the program is active, picking the main menu item (Usually the program's name) and then picking the Quit option at the bottom. The other way is to make the program active, then push the Command-Q keyboard shortcut.
On a keyboard with the Windows keys, the Start button will stand in for the Command button on an Apple keyboard.
Here is a list of other keyboard shortcuts.
I like the way Mac OS software is distributed. Mostly in the form of DMG files, which are like disk images. Opening one causes it to show up like a hard drive, or CD. According to information I've found online, they can be compressed or password protected as well. Installing a program can be as simple as downloading a dmg file, mounting it, and then copying the program to the application folder. The dmg file could also have an installer as well.
It was incredibly easy to setup my printer. I've read the backend of the printing support is based on CUPS which also can handle printing in Linux. Common Unix Printing System was originally what it stood for. Mac OS X has a BSD-based kernel named Darwin. That part of the system is released as open source software. It's missing elements required for the GUI part of Mac OS and can't run Mac OS applications when installed separately from Mac OS X. You can interact with the BSD side with the Terminal application in Applications|Utilities.
The default shell for the Terminal is TCSH, but others are supported and included depending on the version of Mac OS X. Bash, csh, ksh, zsh are some of the options available. Looks like according to the Wikipedia article on TCSH, it's no longer the default as of OS X 10.3.. the default shell is BASH. Running "echo $SHELL" on mine seems to back that up.. the result was "/bin/bash"
X11 was already installed on the one I bought, apparently it is no longer included by default in new installs of Mac OS X. I've used this before to open an X session to one of my Ubuntu computers. It's handy to do so in order to run programs on that computer, or manage files on it.
I've played around with various applications and settings so far. I tried out the Speech recognition. It's not very accurate for me, but it is a neat idea. It makes me wonder if later versions of OS X have that supplemented with SIRI or even still have it at all.
The windowing concept in Mac OS is a little different from Windows, or even X Windows. If you hit the red button at the top left of a window, it doesn't close the application. There's a doc at the bottom of the screen with several common applications, and any running applications. If you look under/in front of an application and see a blue light, that's your indication that the program is still running. Even if there are no open windows, a program will continue to run until you exit it. Two ways that I know about include going to the menu at the top when the program is active, picking the main menu item (Usually the program's name) and then picking the Quit option at the bottom. The other way is to make the program active, then push the Command-Q keyboard shortcut.
On a keyboard with the Windows keys, the Start button will stand in for the Command button on an Apple keyboard.
Here is a list of other keyboard shortcuts.
I like the way Mac OS software is distributed. Mostly in the form of DMG files, which are like disk images. Opening one causes it to show up like a hard drive, or CD. According to information I've found online, they can be compressed or password protected as well. Installing a program can be as simple as downloading a dmg file, mounting it, and then copying the program to the application folder. The dmg file could also have an installer as well.
It was incredibly easy to setup my printer. I've read the backend of the printing support is based on CUPS which also can handle printing in Linux. Common Unix Printing System was originally what it stood for. Mac OS X has a BSD-based kernel named Darwin. That part of the system is released as open source software. It's missing elements required for the GUI part of Mac OS and can't run Mac OS applications when installed separately from Mac OS X. You can interact with the BSD side with the Terminal application in Applications|Utilities.
The default shell for the Terminal is TCSH, but others are supported and included depending on the version of Mac OS X. Bash, csh, ksh, zsh are some of the options available. Looks like according to the Wikipedia article on TCSH, it's no longer the default as of OS X 10.3.. the default shell is BASH. Running "echo $SHELL" on mine seems to back that up.. the result was "/bin/bash"
X11 was already installed on the one I bought, apparently it is no longer included by default in new installs of Mac OS X. I've used this before to open an X session to one of my Ubuntu computers. It's handy to do so in order to run programs on that computer, or manage files on it.
I've played around with various applications and settings so far. I tried out the Speech recognition. It's not very accurate for me, but it is a neat idea. It makes me wonder if later versions of OS X have that supplemented with SIRI or even still have it at all.
Wednesday, October 30, 2013
Minesweeper clone in Javascript
Minesweepers
This is a little project I've been working on lately. It's a clone of Minesweeper implemented in Javascript. I'm not done yet but it is playable. It's missing some features that are common in Minesweeper and other clones of it, such as a timer.
It currently renders game board as a table of set size: 20x18, with 50 mines.
I don't consider this done, I certainly need to re-factor a fair bit of the code to make it more maintainable. Not to mention also easier to use. I'd also like to add a way to let the player choose his or her own play size and number of mines. Maybe even add a timer, and a way to submit scores to a central server whether that's mine or someone else's.
This is playable though. Most of what I consider to be the basics of the game is here. It will randomly generate a field of mines, put the numbers down over the whole board where they are suppose to be, if you click on a blank space then it will expand until it hits a non-zero number, I've even added the flags. If you right click on an unexplored space then it will turn yellow to flag that space as having a mine. Once you've exposed all of the spaces without mines, it will end the game and all of the mine spaces will turn green to show they are cleared. Refresh the page to start a new game.
Like I said, features that I want to add include:
This is implemented as a Single Page Application, so if you go to the file menu and save it to your drive then you can run it from there, or from a flash drive without an Internet connection. Of course if you do, you'll miss out on automatically getting any updates I post on my website. Although, maybe I could embed a version number in a variable then link it to a Javascript file on my website that simply compares the variable to a variable in it and shows a link if they don't match.
This is a little project I've been working on lately. It's a clone of Minesweeper implemented in Javascript. I'm not done yet but it is playable. It's missing some features that are common in Minesweeper and other clones of it, such as a timer.
It currently renders game board as a table of set size: 20x18, with 50 mines.
I don't consider this done, I certainly need to re-factor a fair bit of the code to make it more maintainable. Not to mention also easier to use. I'd also like to add a way to let the player choose his or her own play size and number of mines. Maybe even add a timer, and a way to submit scores to a central server whether that's mine or someone else's.
This is playable though. Most of what I consider to be the basics of the game is here. It will randomly generate a field of mines, put the numbers down over the whole board where they are suppose to be, if you click on a blank space then it will expand until it hits a non-zero number, I've even added the flags. If you right click on an unexplored space then it will turn yellow to flag that space as having a mine. Once you've exposed all of the spaces without mines, it will end the game and all of the mine spaces will turn green to show they are cleared. Refresh the page to start a new game.
Like I said, features that I want to add include:
- GUI for player to choose their own options.
- Timer to show how long the game has been going, starting from the first move.
- Ability to right-click on a number and, if you have the right number of adjacent spaces flagged, have it expose the remaining spaces.
- Possibly a way to submit high-scores to a website. Might not do this though, due to people who would cheat it.
- Modify the code so when you click on a mine, it will stop you from making additional moves and turn all of the mine spaces red.
- Make it impossible to click on a mine as the first round of the game. I think other variants regenerate the board before revealing that space.
This is implemented as a Single Page Application, so if you go to the file menu and save it to your drive then you can run it from there, or from a flash drive without an Internet connection. Of course if you do, you'll miss out on automatically getting any updates I post on my website. Although, maybe I could embed a version number in a variable then link it to a Javascript file on my website that simply compares the variable to a variable in it and shows a link if they don't match.
Wednesday, September 11, 2013
Access 2010 Runtime Security Notice
This was a particularly hairy problem. There's an error message that shows up whenever you open a database with embedded code. It says "A potential security concern has been identified." Followed by a warning in bold. "It is not possible to determine that this content came from a trustworthy source."
(I blanked out the name of the file here)
Many guides I found on the Internet showed this as the registery code to insert to make that go away:
But they forgot one key thing. This is the only way I got this to actually work on my Windows XP test machine.
The AllowNetworkLocations key will allow it to apply this to files stored on a windows share.
(I blanked out the name of the file here)
Many guides I found on the Internet showed this as the registery code to insert to make that go away:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations] "AllowNetworkLocations"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations\Location0] "Path"="N:\\database\\" "AllowSubfolders"=dword:00000001 "Description"=""
But they forgot one key thing. This is the only way I got this to actually work on my Windows XP test machine.
Note the VBAWarnings key above? That is the deciding factor for Access 2010 Runtime to not show the warning message box on my Windows XP test machine. Your mileage may vary.Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security] "VBAWarnings"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations] "AllowNetworkLocations"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations\Location0] "Path"="N:\\database\\" "AllowSubfolders"=dword:00000001 "Description"=""
The AllowNetworkLocations key will allow it to apply this to files stored on a windows share.
Wednesday, June 26, 2013
Citrix XenServer 6.2 Open Source!
http://blogs.citrix.com/2013/06/25/xenserver-6-2-is-now-fully-open-source/
This is big news. You can still purchase a license for it, but instead of enabling features, it only enables you to use Citrix support and apply hotfixes with XenCenter. Hotfixes can still be applied without the licensing, but you have to use the command line to do it.
Feature Matrix
http://www.citrix.com/content/dam/citrix/en_us/documents/products-solutions/citrix-xenserver-core-feature-matrix.pdf
I've been running a server here with Ubuntu for the host and using the XAPI package to do Xen virtualization (and use XenCenter) but it never really worked right. You could see the virtual machines and control the mouse but keyboard events never made it through.
Hopefully I can find time this week/weekend to install XenServer 6.2 on it.
This is big news. You can still purchase a license for it, but instead of enabling features, it only enables you to use Citrix support and apply hotfixes with XenCenter. Hotfixes can still be applied without the licensing, but you have to use the command line to do it.
Feature Matrix
http://www.citrix.com/content/dam/citrix/en_us/documents/products-solutions/citrix-xenserver-core-feature-matrix.pdf
I've been running a server here with Ubuntu for the host and using the XAPI package to do Xen virtualization (and use XenCenter) but it never really worked right. You could see the virtual machines and control the mouse but keyboard events never made it through.
Hopefully I can find time this week/weekend to install XenServer 6.2 on it.
Sunday, May 26, 2013
WebDAV
This is a protocol for working with files over HTTP (or HTTPS). Thanks to that, it's very possible to setup a file share that can be accessed through a firewall without opening any more ports. You can use a WebDAV share with native clients built into many modern operating systems or by using dedicated clients.
One thing to be aware of is that Microsoft Windows Vista and 7, by default, have an option set to not allow Basic Authentication over insecure HTTP traffic. They will allow you to use it over and SSL connection however. This is a problem when using an owncloud instance without SSL. How to mount ownCloud storage over WebDAV. If you follow the Microsoft KB 841215 article, you can change that to allow Basic Authentication without SSL for Vista/7. One thing to note, username and password credentials are sent in the clear without even encryption in this mode so it makes it much easier for someone to snoop your credentials.
I setup an ownCloud instance in my home network to experiment with and ran into all of these issues. One major thing I've learned is that WebDAV is suitable for use to allow people to access their files remotely without having to touch any firewall settings. That was a technical interview question I have been asked in the past.
Now I'm researching why the file transfers seem so slow. KB 2445570 shows one possible solution but not one that works for me.
Subscribe to:
Posts (Atom)


