tag:blogger.com,1999:blog-66356401816721720732024-03-13T00:16:27.450-04:00HackedTogetherDatapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-6635640181672172073.post-61455960762458835402016-06-27T19:34:00.000-04:002016-06-27T19:34:10.134-04:00How to get Cortana to go back to the lock screen when using "Hey Cortana"While playing with Windows Phone 10 Cortana's "Hey Cortana" functionality–where you can say "Hey Cortana" out loud and Cortana will show up to help you out, just like "Hey Siri" or "Ok Google"–I was kind of frustrated about getting Cortana to go back to the lock screen when I was done. Eating up battery with a full lit screen seemed like a waste, and if I am using "Hey Cortana" I'm probably not in a position to easily hold down the power button to activate the lock screen.<br />
<br />
After trying, and failing, by using various commands like "Bye", "End", "Good Bye", "Go to Lockscreen", "Lockscreen", "Go to sleep", "Sleep", "End program", "End of line"*, "Terminate", "Terminate program", "Kill process", "End process", "Go away", and all of the above and more with various expletives I finally came across the magic one!<br />
<br />
<br />
<span style="font-size: large;">"Never mind"</span><br />
<span style="font-size: large;"><br /></span>
After you have use Cortana for, whatever, just say "Hey Cortana" again and then "Never mind" and you will be back to the lock screen!<br />
<br />
Yay!<br />
<br />
*Interestingly Cortana will <strike>~correct~</strike> change "End of Line" to "eol"<br />
*Extra points for movie reference ;)Anonymoushttp://www.blogger.com/profile/13652061314884115185noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-54498014040172636872016-03-21T18:47:00.000-04:002016-03-21T18:47:09.439-04:00Listen to DI.FM streams with VLC as a "Free Listener" (March 2016)<div class="separator" style="clear: both;">
As a long time
<a href="http://di.fm/" style="text-align: start;">DI.FM</a> listener I remember the days when tuning into streams with
<a href="https://en.wikipedia.org/wiki/Winamp" target="_blank"> Winamp </a> was just how you listened.* Of course as time has gone on
<a href="https://en.wikipedia.org/wiki/VLC_media_player" target="_blank"> VLC </a> has become dominant for streaming media, especially since it is
OSS and works on practically every platform. </div>
<div class="separator" style="clear: both;">
<br /></div>
<span style="font-size: x-small;"> *(This has its connections to
<a href="https://en.wikipedia.org/wiki/Icecast" target="_blank">Icecast</a> which uses the
<a href="https://en.wikipedia.org/wiki/SHOUTcast" target="_blank">SHOUTcast</a> protocol, SHOUTcast being by
<a href="https://en.wikipedia.org/wiki/Nullsoft" target="_blank">NullSoft</a> which of course made/owned... Winamp.) </span>
<br />
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-CC9fK7HY78Y/VvBtFpqvebI/AAAAAAAAEiU/a3Tt-TQKnRoYpZi9OpOjBn4YmwgbfZbCw/s1600/dionvlc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;">
<img border="0" height="155" src="https://4.bp.blogspot.com/-CC9fK7HY78Y/VvBtFpqvebI/AAAAAAAAEiU/a3Tt-TQKnRoYpZi9OpOjBn4YmwgbfZbCw/s400/dionvlc.png" width="400" /> </a>
</div>
<br />
<br />
So, not too long ago DI.FM started changing things and they didn't share stream
URLs very freely. But it wasn't hard to find their
<span style="font-family: "courier new" , "courier" , monospace;">
http://pub#.di.fm </span> (where # is an integer between 1 and ...?) Icecast
listings. Paste the link with the mount-point of your choice in VLC or w/e and there
you go!
<br />
<br />
Well the PUBlic listings are still up (minus
<span style="font-family: "courier new" , "courier" , monospace;">
pub3
</span>
??) but when you tune in you get a canned message about "copyright" this
and "PRO account" that...
<br />
<br />
But hey, I signed up to DI.FM's site. I am a "Free Listener", I hear all the ads,
probably don't get the best steam quality, sure. So why can't I just listen on VLC?!
;_;
<br />
<br />
Well, as it turns out it isn't even as difficult as using your "listener key" or
w/e you get when you login to their site. (which is weird because when the site is
making all the stream requests it includes your "id/key" as a querystring to the
server and even sends all your cookie data along too.)
<br />
<br />
All the public servers are looking for now is:
<br />
<ul>
<li>A valid Browser User-Agent </li>
<li> That
<span style="font-family: "courier new" , "courier" , monospace;">
http://www.di.fm/ </span> is the referring page </li>
</ul>
<br />
<br />
<h4>
Poor Man's Method
<a href="https://curl.haxx.se/docs/manpage.html" target="_blank">
(cURL)
</a>
</h4>
<br />
<br />
<div>
<ul>
<li> Pipes cURL putput directly to VLC </li>
<li> I have VLC_BIN as an example for pointing to the VLC app on OSX </li>
<li>
<span style="font-family: "courier new" , "courier" , monospace;">
`vlc -`
</span>
the dash means "read from STDIN"</li>
<ul>
<li>https://wiki.videolan.org/Uncommon_uses/</li>
</ul>
</ul>
</div>
<br />
<br />
<pre style="font-family: "courier new" , "courier" , monospace;"> VLC_BIN=/Applications/VLC.app/Contents/MacOS/VLC
curl 'http://pub5.di.fm/di_vocaltrance_aac' \
-H 'Accept: */*' \
-H 'Connection: keep-alive' \
-H 'Referer: http://www.di.fm/' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36' \ -H 'Accept-Language: en-US,en;q=0.8' \
--compressed | $VLC_BIN -
</pre>
<br />
<br />
<h4>
<a href="https://www.charlesproxy.com/" target="_blank">
Charles Proxy
</a>
Method
</h4>
<br />
<br />
<div>
Suffice to say:
<br />
<ul>
<li> Get Charles </li>
<li> Use its Rewrite to: </li>
<ul>
<li> Modify the
<span style="font-family: "courier new" , "courier" , monospace;">
User-Agent Header
</span>
to be that of a valid browser</li>
<li> Add the
<span style="font-family: "courier new" , "courier" , monospace;">
Referrer Header
</span>
, being DI.FM's URL</li>
</ul>
<li> Point VLC to the proxy</li>
<ul>
<li> Usually
<span style="font-family: "courier new" , "courier" , monospace;">
localhost:8888
</span>
or something...</li>
</ul>
<li>Connect to stream through VLC as usual!</li>
</ul>
</div>
<br />
<br />
<div>
<h4>
Possible Cheap &(!) Clean Methods
</h4>
<br />
<br />
<ul>
<li>
<a href="https://tinyproxy.github.io/" target="_blank">
Tinyproxy
</a>
- https://tinyproxy.github.io/ might be worth a look
</li>
</ul>
</div>
Anonymoushttp://www.blogger.com/profile/13652061314884115185noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-77135717188200432422014-12-12T06:05:00.001-05:002014-12-12T06:05:22.598-05:00MacPorts problem installing mono-addinsOSX version: 10.9.5<br />
MacPorts version: 2.3.3<br />
mono-addins version: 0.6.2<br />
<br />
Command line error:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">$ sudo port install mono-addins<br />---> Computing dependencies for mono-addins<br />---> Building mono-addins<br />Error: org.macports.build for port mono-addins returned: command execution failed<br />Please see the log file for port mono-addins for details:<br /> /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_mono-addins/mono-addins/main.log<br />To report a bug, follow the instructions in the guide:<br /> http://guide.macports.org/#project.tickets<br />Error: Processing of port mono-addins failed</span></blockquote>
<br />
main.log error: (toward the end)<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">:info:build error CS1705: Assembly `gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f' references `Mono.Cairo, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' which has a higher version number than imported assembly `Mono.Cairo, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'</span></blockquote>
<br />
Find it fast using:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">grep -n ":info:build error" /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_mo</span><span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">no-addins/mono-addins/main.log </span></blockquote>
<br />
Where is Mono.Addins.Gui?:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_mono-addins/mono-addins/work/mono-addins-0.6.2/Mono.Addins.Gui</span></blockquote>
<br />
From <span style="font-family: Courier New, Courier, monospace;"><a href="https://monoaddins.codeplex.com/discussions/399592">https://monoaddins.codeplex.com/discussions/399592</a></span> :<br />
<blockquote class="tr_bq">
<span style="background-color: white; color: #253340; font-size: 13px; line-height: 19.4933338165283px;"><span style="font-family: Courier New, Courier, monospace;">"Go to makefile in the Mono.Addins.Gui project and find ASSEMBLY_COMPILER_FLAGS. Add -sdk:4 after -d:DEBUG and run make again."</span></span></blockquote>
<br />
<blockquote class="tr_bq">
</blockquote>
Anonymoushttp://www.blogger.com/profile/13652061314884115185noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-50845114282688108362014-10-20T11:34:00.000-04:002014-10-20T11:34:33.368-04:00Upgrade Crunchbang from wheezy/waldorf to janice/jessie (stable to testing) simplified<br />
Following <a href="http://jschueths.wordpress.com/about/" target="_blank">jschueths</a>'s post <a href="http://jschueths.wordpress.com/2014/04/02/updating-crunchbang-to-the-next-release/trackback/" target="_blank">Updating Crunchbang to the Next Release</a> I decided to use SED to make everything easier, instead of making the changes one-by-one by hand.<br />
<br />
We should probably make backups of the files we are modifying first:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.waldrof </span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">$ sudo cp /etc/apt/preferences /etc/apt/preferences.waldrof</span></blockquote>
Then one command to make all the modifications: <br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">$ sudo sed -i 's/waldorf/janice/g;s/wheezy/jessie/g' /etc/apt/sources.list /etc/apt/preferences</span></blockquote>
Then as jschurths said:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">$ sudo apt-get update </span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">$ sudo apt-get --no-install-recommends dist-upgrade</span></blockquote>
<br />Anonymoushttp://www.blogger.com/profile/13652061314884115185noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-85603962388539826822014-10-19T17:40:00.000-04:002014-10-19T17:40:25.024-04:00Block incoming WAN (Internet) connections for SAMBA using iptables<br />
T<span style="font-family: Times,"Times New Roman",serif;">his is my ide</span>a on how one might keep WAN connections from hitting a SAMBA server:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">iptables -m multiport -m comments -A INPUT -s 192.168.0.0/24 -p tcp --dports 137:139,445,43270,43273 -j ACCEPT --comment "Allow local connections to SAMBA - TCP"</span><br />
<span style="font-family: "Courier New",Courier,monospace;">iptables -m multiport -m comments -A INPUT -s 192.168.0.0/24 -p udp --dports 137:139,445,43270,43273 -j ACCEPT --comment "Allow local connections to SAMBA - UDP"</span><br />
<span style="font-family: "Courier New",Courier,monospace;"><br /></span>
<span style="font-family: "Courier New",Courier,monospace;"><br /></span>
<span style="font-family: "Courier New",Courier,monospace;">iptables -m multiport -m comments -A INPUT -p tcp --dports 137:139,445,43270,43273 -j DROP --comment "Block WAN connections to SAMBA - TCP"</span><br />
<span style="font-family: "Courier New",Courier,monospace;">iptables -m multiport -m comments -A INPUT -p udp --dports 137:139,445,43270,43273 -j DROP--comment "Block WAN connections to SAMBA - UDP"</span></blockquote>
The ports *should* be right for SAMBA. The network address and range (<span style="font-family: "Courier New",Courier,monospace;">192.168.0.0/24<span style="font-family: Times,"Times New Roman",serif;">) might have to be changed to reflect you LAN (internal network)</span></span>Anonymoushttp://www.blogger.com/profile/13652061314884115185noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-26547533979260198972014-01-28T23:38:00.000-05:002014-01-28T23:38:12.591-05:00Unity 4 - Third Person Controller and Camera useage hints and tips1.) First thing first, when applying the components "Third Person Controller" and even more importantly "Third Person Camera" BOTH scripts should be applied to your player object. "Third Person Camera" is not meant to be applied to a camera, as much as the name might suggest it.<br />
<br />
If you attached the "Third Person Camera" script to a camera you probably got a message like the following:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">Please assign a target to the camera that has a ThirdPersonController script attached.</span><br /><span style="font-family: "Courier New",Courier,monospace;">UnityEngine.Debug:Log(Object)</span><br /><span style="font-family: "Courier New",Courier,monospace;">ThirdPersonCamera:Awake() (at Assets/Standard Assets/Character Controllers/Sources/Scripts/ThirdPersonCamera.js:58)</span></blockquote>
<br />
2.) If you can't find "Third Person" Controller or Camera look under <span style="font-family: "Courier New",Courier,monospace;">Components > Scripts</span>.<br />
<br />
3.) If you leave the "Camera Transform" attribute under "Third Person Camera" blank the script will try to use the Main Camera automatically. If you have no main camera (for whatever reason) and don't assign a camera transform to it there will be issues.... With an error probably like the following:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">MissingComponentException: There is no 'Camera' attached to the "something" game object, but a script is trying to access it.<br />You probably need to add a Camera to the game object "something". Or your script needs to check if the component is attached before using it.</span></blockquote>
<br />
4.) If you get the following error:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">InvalidCastException: Cannot cast from source type to destination type.<br />ThirdPersonCamera.Awake () (at Assets/Standard Assets/Character Controllers/Sources/Scripts/ThirdPersonCamera.js:52)</span></blockquote>
...it is probably because there is a collider on your player object. Take off the collider. Something ("Character Controller" I assume) is adding automagically.<br />
<br />
5.) If you get weird jumpiness when turning, make sure all the above it straightened out. Then make sure the Camera isn't a child object of the player... Who knows, maybe it got there when you were experimenting with the scripts initially? :pAnonymoushttp://www.blogger.com/profile/13652061314884115185noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-65403769440422827712013-11-19T17:24:00.000-05:002013-11-19T17:24:17.389-05:00Convert .vhd to VMWare image (.vmdk) on Mac OSXIn order to convert a Microsoft Virtual PC hard drive image (type .vhd) to a VMWare Fusion image (type .vmdk) on OSX you can use Qemu. While other articles mention using the Mac port of qemu called simply "Q", using Macports you can use Qemu directly.<br />
<br />
Using Macports:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">sudo ports install qemu</span></blockquote>
Then using the qemu-img command:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">qemu-img convert -f vpc -O vmdk Win7_IE8.vhd win7-ie8.vmdk</span></blockquote>
<br />
...for example will output the desired image! Anonymoushttp://www.blogger.com/profile/13652061314884115185noreply@blogger.com3tag:blogger.com,1999:blog-6635640181672172073.post-15300737633236559992013-09-06T14:09:00.001-04:002013-09-06T16:34:45.894-04:00Using Grunt-phonegap-build: depricating grunt-zipstream and buiding on other platformsIf you use Grunt and want to automate builds in <a href="http://build.phonegap.com/">build.phonegap.com</a> you may have noticed the <a href="https://github.com/centralway/grunt-phonegap-build" target="_blank">Grunt-Phonegap-Build</a> plugin. However the documentation is a little bit outdated. For one, <a href="https://npmjs.org/package/grunt-zipstream" target="_blank">Grunt-zipstream </a>doesn't work with newer versions of Node.js (as of the writing here), so we will substitute in <a href="https://github.com/gruntjs/grunt-contrib-compress" target="_blank">Grunt-contrib-compress</a>. Then there is the fact that iOS uses certs now, and there is a key/password example in the documentation? It turns out that you can simply omit this line and build with iOS no problem! Finally there are the missing examples for Blackberry and Windows Phones builds. Yes, you can do them, and I will show you how:<br />
<br />
<h2>
Replacing Grunt-zipstream</h2>
We will use <a href="https://github.com/gruntjs/grunt-contrib-compress" target="_blank">Grunt-contrib-compress</a> instead with the following configuration:<br />
<blockquote class="tr_bq">
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">var compressConfig = {<br /> main: {<br /> options: {<br /> archive: 'app.zip'<br /> },<br /> expand: true,<br /> src: ['*.html', 'styles/**/*.css', 'srcipts/**/*.js', 'favicon.ico', 'images/**/*'],<br /> }<br /> };</span></span></blockquote>
and with a sub-directory using a variable for Yeoman<br />
<blockquote class="tr_bq">
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">var compressConfig = {<br /> main: {<br /> options: {<br /> archive: 'app.zip'<br /> },<br /> expand: true,<br /> cwd: '<%= yeoman.app %>/',<br /> src: ['*.html', 'styles/**/*.css', 'srcipts/**/*.js', 'favicon.ico', 'images/**/*'],<br /> }<br /> };</span></span></blockquote>
You can replace "zip" with "compress" in the documentation, or make a separate task like I did:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;">grunt.registerTask('remote_build', [<br /> 'compress',<br /> 'phonegap-build:debug'<br /> ]);</span></span></blockquote>
<br />
<h2>
Blackberry and Windows Phone builds</h2>
Wondering how to make Windows Phone Builds with Grunt-phonegap-build? To build out for iOS, Android, Blackberry, and Windows Phone you can do your setup this way:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;">var phonegapBuildConfig = {<br /> debug: {<br /> options: {<br /> archive: 'app.zip',<br /> 'appId': 'XXXXXX',<br /> 'user': {<br /> 'email': 'myemail@server.com',<br /> 'password': 'password1234'<br /> },<br /> keys: {<br /> //ios: { 'password': password1234' },<br /> android: { 'key_pw': 'password1234', 'keystore_pw': 'password1234' },<br /> blackberry: { 'password': 'password1234'}<br /> },<br /> download: {<br /> ios: 'dist/ios.ipa',<br /> android: 'dist/android.apk',<br /> blackberry: 'dist/blackberry.ota',<br /> winphone: 'dist/winphone.xap'<br /> }<br /> }<br /> }</span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;">}; </span></span></blockquote>
<br />
No need for the iOS password anymore, see how to specify the key for Blackberry, and the attribute name for Windows Phone is "winphone"!<br />
<br />
Here is everything in total:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;">module.exports = function (grunt) {<br /> // show elapsed time at the end<br /> require('time-grunt')(grunt);<br /> // load all grunt tasks<br /> require('load-grunt-tasks')(grunt);<br /><br /> //REMOTE (build.phonegap.com) phonegap (for devices) builds<br /> grunt.loadNpmTasks('grunt-contrib-compress');<br /> grunt.loadNpmTasks('grunt-phonegap-build');<br /><br /> // configurable paths<br /> var yeomanConfig = {<br /> app: 'app',<br /> dist: 'dist'<br /> };<br /><br /> var phonegapBuildConfig = {<br /> debug: {<br /> options: {<br /> archive: 'app.zip',<br /> 'appId': 'XXXXXX',<br /> 'user': {<br /> 'email': 'myemail@server.com',<br /> 'password': 'password1234'<br /> },<br /> keys: {<br /> //ios: { 'password': password1234' },<br /> android: { 'key_pw': 'password1234', 'keystore_pw': 'password1234' },<br /> blackberry: { 'password': 'password1234'}<br /> },<br /> download: {<br /> ios: 'dist/ios.ipa',<br /> android: 'dist/android.apk',<br /> blackberry: 'dist/blackberry.ota',<br /> winphone: 'dist/winphone.xap'<br /> }<br /> }<br /> };<br /><br /> var compressConfig = {<br /> main: {<br /> options: {<br /> archive: 'app.zip'<br /> },<br /> expand: true,<br /> cwd: '<%= yeoman.app %>/',<br /> src: ['*.html', 'styles/**/*.css', 'srcipts/**/*.js', 'favicon.ico', 'images/**/*'],<br /> }<br /> };<br /><br /> grunt.initConfig({<br /> 'phonegap-build': phonegapBuildConfig,<br /> compress: compressConfig<br /> });<br /><br /> grunt.registerTask('remote_build', [<br /> 'compress',<br /> 'phonegap-build:debug'<br /> ]);<br />};</span></span></blockquote>
Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-27134813938804916372013-09-06T13:46:00.000-04:002013-09-06T14:11:44.193-04:00Registration (key) pages for various version of Visual Studio Express<br />
If you are looking for the link to a version of Visual Studio Express Registration, here is what I have found so far:<br />
<br />
Microsoft® Visual Web Developer® 2008 Express Edition: <a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?fu=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2fvsreg%2fdefault.aspx%3frel%3dvs2008%26h%3dd9eac95a73d80105%26pid%3d91911-152-0000077-60782%26bn%3d030729.01%26r%3dy%26lcid%3d1033&wizid=bbcd9486-83de-4770-9541-708db0f37792&lcid=1033" target="_blank">https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?fu=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2fvsreg%2fdefault.aspx%3frel%3dvs2008%26h%3dd9eac95a73d80105%26pid%3d91911-152-0000077-60782%26bn%3d030729.01%26r%3dy%26lcid%3d1033&wizid=bbcd9486-83de-4770-9541-708db0f37792&lcid=1033 </a><br />
<br />
Microsoft®
Visual Web Developer® 2010 Express:<a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=345281f9-6588-4888-820f-2695af056d4f" target="_blank"> https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=345281f9-6588-4888-820f-2695af056d4f</a><br />
<br />
Visual Studio Express 2012 for Web:
<a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=C7497E1F-ADA8-4302-9B50-B01855369B2A">https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=C7497E1F-ADA8-4302-9B50-B01855369B2A</a><br />
<br />
Visual Studio Express 2012 for Windows Desktop: <a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=2525f0ba-d85f-4730-bd75-e1299f83e666&lcid=1033" target="_blank">https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=2525f0ba-d85f-4730-bd75-e1299f83e666&lcid=1033 </a><br />
<br />
Hope it helps!Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com3tag:blogger.com,1999:blog-6635640181672172073.post-31753802022418778792013-08-15T16:31:00.000-04:002013-09-06T14:11:22.492-04:00The TBK Wii-link RF600 PRO 2.4 GHz Wi-Fi Booster.I've been looking at 2.4 GHz Wi-Fi signal boosters lately, and one (reportedly) powerful (4 Watt) and cost effective (~$100) amplifier is the TBK Wii-link RF600 PRO.<br />
<br />
<h4>
Time for research!</h4>
It seems to be manufactured by ShenZhen TBK Electronic Co., Ltd<br />
<br />
The most official listing I could find is: <a href="http://tbkchina.en.alibaba.com/product/922769231-218833311/2_4G_4W_Waterproof_RF600_Pro_0utdoor_Wi_Fi_Booster.html">http://tbkchina.en.alibaba.com/product/922769231-218833311/2_4G_4W_Waterproof_RF600_Pro_0utdoor_Wi_Fi_Booster.html</a><br />
<br />
As you can see their Alibaba page is: <a href="http://tbkchina.en.alibaba.com/">http://tbkchina.en.alibaba.com</a><br />
<br />
Here is the circuit board diagram (Clean version): <br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-yeEDHVukyD8/Ug03VG09AHI/AAAAAAAABuo/ja0KeyMQCLU/s1600/New-4w-UP-to-36dbm-2-4g-Wireless-802-11-bgn-Adjustable-WIFI-Booster-Amplifier-6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="http://1.bp.blogspot.com/-yeEDHVukyD8/Ug03VG09AHI/AAAAAAAABuo/ja0KeyMQCLU/s320/New-4w-UP-to-36dbm-2-4g-Wireless-802-11-bgn-Adjustable-WIFI-Booster-Amplifier-6.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
And a higher resolution version:</div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-8S6H-iu5I6Q/Ug03UhBJr9I/AAAAAAAABug/cnXp99tuXRw/s1600/644395927_255.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="http://1.bp.blogspot.com/-8S6H-iu5I6Q/Ug03UhBJr9I/AAAAAAAABug/cnXp99tuXRw/s320/644395927_255.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
The rest of the images are the highest resolution I could find.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The board, top half:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-6LxNgFOyEt0/Ug03SyI57eI/AAAAAAAABts/xgRs2Uw-Ar4/s1600/593911783_69069765.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="232" src="http://4.bp.blogspot.com/-6LxNgFOyEt0/Ug03SyI57eI/AAAAAAAABts/xgRs2Uw-Ar4/s320/593911783_69069765.jpg" width="320" /> </a></div>
<div class="" style="clear: both; text-align: left;">
<br /></div>
<div class="" style="clear: both; text-align: left;">
The bottom half (upside down):</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Ug8d0hncRwg/Ug03TfTqJdI/AAAAAAAABt4/PuRwVk5DtYo/s1600/593917361_69069765.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="170" src="http://4.bp.blogspot.com/-Ug8d0hncRwg/Ug03TfTqJdI/AAAAAAAABt4/PuRwVk5DtYo/s320/593917361_69069765.jpg" width="320" /></a></div>
<br />
<br />
<br />
Close up of the switch:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-AH9UHx0QiG0/Ug03ULE0y4I/AAAAAAAABuQ/NXSo9VUFHMo/s1600/594154727_69069765.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;">j<img border="0" height="320" src="http://2.bp.blogspot.com/-AH9UHx0QiG0/Ug03ULE0y4I/AAAAAAAABuQ/NXSo9VUFHMo/s320/594154727_69069765.jpg" width="247" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
In the box: </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-xjUU53tvkLU/Ug03TjQdRHI/AAAAAAAABvY/pUMByaDkwXg/s1600/593919247_69069765.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="296" src="http://2.bp.blogspot.com/-xjUU53tvkLU/Ug03TjQdRHI/AAAAAAAABvY/pUMByaDkwXg/s320/593919247_69069765.jpg" width="320" /></a> </div>
<br />
Hey look! Other models (RF600-AP, RF600N, RF600N-AP, RF606): <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Tg-Swr8Yaj4/Ug03T3ekPEI/AAAAAAAABuI/EG270tJLSlQ/s1600/593920086_69069765.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="278" src="http://3.bp.blogspot.com/-Tg-Swr8Yaj4/Ug03T3ekPEI/AAAAAAAABuI/EG270tJLSlQ/s320/593920086_69069765.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-FMTrRPt7EQU/Ug03UV1J09I/AAAAAAAABuY/ZZJ6IFz_xcc/s1600/594290464_69069765.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="http://4.bp.blogspot.com/-FMTrRPt7EQU/Ug03UV1J09I/AAAAAAAABuY/ZZJ6IFz_xcc/s320/594290464_69069765.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-ZJegEgW1Yco/Ug03Syj3xUI/AAAAAAAABt8/3r1a_ivhzY0/s1600/593911781_69069765.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="232" src="http://4.bp.blogspot.com/-ZJegEgW1Yco/Ug03Syj3xUI/AAAAAAAABt8/3r1a_ivhzY0/s320/593911781_69069765.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-cIkIG5cqDAU/Ug03WT5ntgI/AAAAAAAABvQ/4DBMe8Y6t3A/s1600/T2f1V1XmBcXXXXXXXX_!!405972778.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="http://3.bp.blogspot.com/-cIkIG5cqDAU/Ug03WT5ntgI/AAAAAAAABvQ/4DBMe8Y6t3A/s320/T2f1V1XmBcXXXXXXXX_!!405972778.jpg" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-JBJWAyHgRn4/Ug03TPRBIiI/AAAAAAAABtw/44RL3nvbd90/s1600/593915623_69069765.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-JBJWAyHgRn4/Ug03TPRBIiI/AAAAAAAABtw/44RL3nvbd90/s320/593915623_69069765.jpg" width="293" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-KTZzVXECBXU/Ug03VmSJoKI/AAAAAAAABu4/eUgrYvjEnnY/s1600/T2a1VtXhpNXXXXXXXX_!!405972778.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-KTZzVXECBXU/Ug03VmSJoKI/AAAAAAAABu4/eUgrYvjEnnY/s320/T2a1VtXhpNXXXXXXXX_!!405972778.jpg" width="304" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-rngfn3N_B-Y/Ug03V3WAy0I/AAAAAAAABvA/Y0CZasAHuGg/s1600/T2bPBSXoFbXXXXXXXX_!!405972778.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="http://1.bp.blogspot.com/-rngfn3N_B-Y/Ug03V3WAy0I/AAAAAAAABvA/Y0CZasAHuGg/s320/T2bPBSXoFbXXXXXXXX_!!405972778.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-nwZzQU3Yxz0/Ug03WDzGNRI/AAAAAAAABvI/WyolqgvZMU8/s1600/T2cQXSXeXaXXXXXXXX_!!405972778.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="http://2.bp.blogspot.com/-nwZzQU3Yxz0/Ug03WDzGNRI/AAAAAAAABvI/WyolqgvZMU8/s320/T2cQXSXeXaXXXXXXXX_!!405972778.jpg" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-QHNL5DzfYyw/Ug03VX9Op7I/AAAAAAAABuw/Fvdmgog1gp0/s1600/T2RitKXkBcXXXXXXXX_!!405972778.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="http://3.bp.blogspot.com/-QHNL5DzfYyw/Ug03VX9Op7I/AAAAAAAABuw/Fvdmgog1gp0/s320/T2RitKXkBcXXXXXXXX_!!405972778.jpg" width="320" /></a></div>
<br />Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com1tag:blogger.com,1999:blog-6635640181672172073.post-54083525821901420992013-03-23T01:22:00.000-04:002013-09-06T14:14:17.477-04:00Why are there stars?For anyone who can remember the old projector at Lollipop, you will probably also remember what has lovingly been referred to as the "startfield" which appeared in the conference room. This pattern of a mixture of flickering and static white dots were, as you might have already guessed, dead pixels. Or more accurately stuck pixels.<br />
<br />
Our <a href="http://en.wikipedia.org/wiki/Digital_Light_Processing" target="_blank">DLP</a> projector uses an array of tiny mirrors to reflect light at just the right time as each color filter on a spinning wheel moves in front of the lamp to produce a recognizable image. These mirrors are stuck, reflecting the light constantly. Why? My guess is that since the projector sat so low and at an angle on the conference table that it needed the keystone to be highly adjusted to make it seem straight. This cut off a large section of the <a href="http://en.wikipedia.org/wiki/Digital_Micromirror_Device" target="_blank">DMD</a> and these mirrors were kept off, I think they just got tired out.<br />
<br />
So, where did these stars come from exactly? Well I tore down the projector and got an "inside look."<br />
Here are some images of the DMD:<br />
<br />
<table 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="http://3.bp.blogspot.com/-_Kl2lTgZmUk/UU0246Qr1TI/AAAAAAAABsA/MqCm4ZMDi_k/s1600/DSC_3190.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="262" src="http://3.bp.blogspot.com/-_Kl2lTgZmUk/UU0246Qr1TI/AAAAAAAABsA/MqCm4ZMDi_k/s400/DSC_3190.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Here we see the tell-tale "burn" of where the keystone was focused.</td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<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="http://3.bp.blogspot.com/-PmyWljiPF_Y/UU04v3qQ9oI/AAAAAAAABsI/AWP-k5yx_aQ/s1600/keystone-crop.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="278" src="http://3.bp.blogspot.com/-PmyWljiPF_Y/UU04v3qQ9oI/AAAAAAAABsI/AWP-k5yx_aQ/s400/keystone-crop.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A closer version with outlines highlight the keystone "burn." A blue line shows where the Macintosh menu bar has left its print.</td></tr>
</tbody></table>
<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="http://1.bp.blogspot.com/-umXfqQLTFqU/UU022vxZ4aI/AAAAAAAABr4/w2xrdY9SZA4/s1600/DSC_3188.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="260" src="http://1.bp.blogspot.com/-umXfqQLTFqU/UU022vxZ4aI/AAAAAAAABr4/w2xrdY9SZA4/s400/DSC_3188.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">And here, the origin of our star field.</td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<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="http://2.bp.blogspot.com/-iwQoxNgavlw/UU04wkc4WxI/AAAAAAAABsQ/4PlAwrYloHs/s1600/starfield-crop.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="222" src="http://2.bp.blogspot.com/-iwQoxNgavlw/UU04wkc4WxI/AAAAAAAABsQ/4PlAwrYloHs/s400/starfield-crop.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"All that glitters is not gold." It's true, it's aluminum.</td></tr>
</tbody></table>
Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-24598474356009797002013-02-01T15:22:00.000-05:002013-09-06T14:13:44.204-04:00Websockets in BugzillaDuring a recent project a co-worker and I were trying to diagnose some issues with a <a href="https://developer.mozilla.org/en-US/docs/WebSockets/WebSockets_reference/WebSocket" target="_blank">Websocket</a> implementation. We were testing in <a href="http://www.mozilla.org/en-US/firefox/new/" target="_blank">Firefox</a> and brought up <a href="https://getfirebug.com/" target="_blank">Firebug</a> to see what was going on. To our surprise while we could see the <a href="http://en.wikipedia.org/wiki/HTTP/1.1_Upgrade_header" target="_blank">UPGRADE request</a> to create the Websocket, but we couldn't see the Websocket data itself. We ended up, at first, resorting to using Google <a href="http://www.google.com/chrome" target="_blank">Chrome</a> and using its <a href="http://stackoverflow.com/questions/8952773/chrome-web-inspector-web-socket-debugging" target="_blank">Websocket monitoring "functionality"</a> (horrible, horrible, horrible!) to try and debug. We later settled into using <a href="http://www.charlesproxy.com/" target="_blank">Charles</a> to monitor the Websocket data, this was pretty nice and had the added benefit of being able to easily test from a mobile divice as well. Even with that <i>okay </i>solution I feel that there should be a quick easy way to view any and all data passing to/from the browser by default, and that an implementation should be neat and clean, much like the rest of Firebug but unlike Google Chrome's attempt.<br />
<br />
<h2>
What has been done so far:</h2>
<h3>
Firefox Bugzilla</h3>
<blockquote class="tr_bq">
<a href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=websocket+bugzilla">https://bugzilla.mozilla.org/buglist.cgi?quicksearch=websocket+bugzilla</a></blockquote>
<br />
-0 results<br />
<h3>
Firebug Google Issues</h3>
<blockquote class="tr_bq">
<a href="http://code.google.com/p/fbug/issues/list?q=Websockets">code.google.com/p/fbug/issues/list?q=Websockets</a></blockquote>
<br />
-0 results<br />
<br />
So... nothing.<br />
<br />
<h2>
Has anyone else noticed this lacking?</h2>
<div>
MrEcho has: </div>
<blockquote class="tr_bq">
<a href="https://groups.google.com/forum/?fromgroups=#!topic/firebug/Z4f0UON_ebk">https://groups.google.com/forum/?fromgroups=#!topic/firebug/Z4f0UON_ebk</a></blockquote>
but he never got a response. :(<br />
<br />
enq... did, and even got a good response!<br />
<blockquote class="tr_bq">
<a href="https://groups.google.com/forum/?fromgroups=#!topic/firebug/DXF5KjionVQ">https://groups.google.com/forum/?fromgroups=#!topic/firebug/DXF5KjionVQ</a></blockquote>
and then never followed up!<br />
<br />
Yes, others have notice, but there doesn't seem to be much of a drive to get the functionality.<br />
<h2>
Quick fixes (in order from cleanest/easiest to most problematic)</h2>
<div>
<ol>
<li>Use Charles</li>
<li>Use Google Chrome</li>
<li>Intercept all websocket data (with console messages for example) in your implementation</li>
<li>Bind to the "message" callback</li>
</ol>
<div>
Number four was of particular interest to me. While I was looking in to a way to capture data from the websocket implementation in Firefox I ended up following the actual notifications all the way up to the Javascript level. This was interesting because it could be done without modifying the Mozilla code base, and at a very high level. As a matter of fact I created a Scriptmonkey script that would bind to the Websocket object in the project we were working on. The problem was that it is difficult to have it detect any Websocket being created and binding to it. An idea as to why this is difficult is that the the MutationObserver doesn't seem to trigger on mutations (such as the creation of a Websocket) as high as the window object, which is where it would be happening.</div>
</div>
<h2>
What to do about it</h2>
<div>
Firebug has awesome extension capabilities, which is great, but alone isn't enough. Looking at the HTTPobserver usage in Firebug gives us an example of just how much it is dependent on observer implementation deep in the Necko framework.</div>
<div>
<br /></div>
<div>
We will first have to modify the Websocket implementation in Necko to allow Firebug to hook into it as an observer. Then give Firebug the ability to hook in and display the data, either as an extension or built in. Though hopefully in the case of the former, creating it in such a way that it could easily be ported as built in to Firebug.</div>
<blockquote class="tr_bq">
</blockquote>
Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-55010745630340442462013-01-22T10:41:00.001-05:002013-01-22T10:41:38.549-05:00Multiple version of gcc on Mac OSXSometimes you might find yourself in a situation where you want to run one version of gcc on your Mac while maintaining a previous version, instead of simply upgrading via overwrite. For instance, I have <a href="http://gcc.gnu.org/" target="_blank">XCode</a> installed (with gcc4.2) but want to compile with gcc4.7. However, if I have problems with XCode using gcc4.7 I want to be able to switch to gcc4.2 on the fly.<br />
<br />
First thing to do is install gcc4.7, I will be using <a href="http://www.macports.org/" target="_blank">MacPorts</a>.<br />
<br />
<br />
If you want to see what versions of gcc you have at your disposal you can run:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">$sudo port search gcc</span></blockquote>
If you are interested in gaining C++0x/ C++11 functionality you might want to consult <a href="http://gcc.gnu.org/projects/cxx0x.html">http://gcc.gnu.org/projects/cxx0x.html</a> to select a version that suites your needs.<br />
<br />
Now to install the new/other version:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">$sudo port install gcc47</span></blockquote>
If I were to see what version of gcc I was running by executing:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">$gcc -v</span></blockquote>
I would see that it still points to a 4.2 version of gcc. What you need to do is "select" the version of gcc you wish to use. You may need to install <i>gcc_select</i> first, but it might already be installed:<br />
<br />
<blockquote class="tr_bq">
<code><span style="font-family: Courier New, Courier, monospace;"><span class="pln">$sudo port install gcc_select</span></span></code></blockquote>
To actually select the working version of gcc[1], first see what you have to choose from:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">$port select --list gcc</span></blockquote>
Then make the choice:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">$sudo port select --set gcc mp-gcc47 </span></blockquote>
At this point running gcc (even to display the version number) may result in an error message as such:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">gcc-mp-4.7: error trying to exec '/opt/local/bin/i686-apple-darwin10-llvm-gcc-4.2': execvp: No such file or directory</span></blockquote>
In which case you have to rehash your links[2]. To see if gcc is indeed hashed run:<br />
<blockquote class="tr_bq">
<code><span style="font-family: Courier New, Courier, monospace;">$hash</span></code></blockquote>
You will probably see gcc listed in there, rehash gcc's link:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">$hash gcc </span></blockquote>
Checking the version number of gcc you should see the version you selected as working! In my case gcc4.7 is now working!<br />
<br />
[1] <a href="http://stackoverflow.com/questions/837992/update-gcc-on-osx" target="_blank">http://stackoverflow.com/questions/837992/update-gcc-on-osx </a><br />
[2] <a href="http://superuser.com/questions/423254/macports-gcc-select-error-trying-to-exec-i686-apple-darwin11-llvm-gcc-4-2%C2%A0" target="_blank">http://superuser.com/questions/423254/macports-gcc-select-error-trying-to-exec-i686-apple-darwin11-llvm-gcc-4-2 </a><br />
Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-4734355362969888522012-09-05T00:21:00.001-04:002012-09-05T00:27:29.463-04:00Get rows from multiple statementsWhile I was trying to return rows from a SELECT statement at the end of a list of multiple statements passed through PHPs PDO with MySQL I ran in to a few problems.<br />
<br />
1.) First, if you send multiple statements, you have to go through each rowset that is returned for each statement. This is accomplished using the <a href="http://www.php.net/manual/en/pdostatement.nextrowset.php">nextRowset() function</a>. Which is talked about on a <a href="http://stackoverflow.com/questions/11271595/pdo-multiple-queries">StackOverflow question</a> and discussed in depth on this <a href="http://blog.ulf-wendel.de/2008/pdo_mysqlnd-insecure-multi-statements-and-pdostatementnextrowset/">Internet Super Hero blog post</a>.<br />
<br />
It seems that the standard pdo-mysql driver cannot do this, or has some other difficulty. The suggested solution is using the pdo-mysqlnd patch. Sounds simple enough with the instructions here, but I am running MAMP and so have a separate PHP version running for MAMP. Luckily there are instructions for upgrading MAMP's PHP on David Golding's blog post <a href="http://www.davidgolding.net/cakephp/upgrading-php-in-mamp.html">Upgrading PHP in MAMP</a>.<br />
<br />
2.) I had an issue with the error:<br />
<blockquote class="tr_bq">
cannot open /Applications/MAMP/Library/build/config_vars.mk: No such file or directory at /Applications/MAMP/Library/bin/apxs line 218.</blockquote>
during the configure process. As noted in the comments (by: Khang Nguyen) from the previously mentioned blog post the solution is changing:<br />
<blockquote class="tr_bq">
-–with-apxs2=/Applications/MAMP/Library/bin/apxs</blockquote>
to<br />
<blockquote class="tr_bq">
-–with-apxs2=/usr/sbin/apxs </blockquote>
<br />
3.) And for the purpose of compiling PHP with pdo-mysqlnd we change:<br />
<blockquote class="tr_bq">
--with-pdo-mysql=shared,/Applications/MAMP/Library</blockquote>
<br />
to<br />
<br />
<blockquote class="tr_bq">
--with-pdo-mysql=mysqlnd,/Applications/MAMP/Library</blockquote>
NOTE: For the following I use "/opt/local" since I use MacPorts, you might have to use something different like just "/opt". <br />
<br />
<br />
4.) Next error:<br />
<br />
<blockquote class="tr_bq">
configure: error: libjpeg.(a|so) not found.</blockquote>
Solution: Change:<br />
<blockquote class="tr_bq">
'--with-jpeg-dir=/Applications/MAMP/Library'
'--with-png-dir=/Applications/MAMP/Library' '--with-zlib'
'--with-freetype-dir=/Applications/MAMP/Library'</blockquote>
to<br />
<blockquote class="tr_bq">
--with-jpeg-dir=/opt/local --with-png-dir=/opt/local --with-zlib --with-freetype-dir=/opt/local</blockquote>
5.) Fix t1lib error. Make sure t1lib is installed:<br />
<blockquote class="tr_bq">
sudo port install t1lib</blockquote>
Change:<br />
<blockquote class="tr_bq">
--with-t1lib=/Applications/MAMP/Library</blockquote>
to<br />
<blockquote class="tr_bq">
--with-t1lib=/opt/local </blockquote>
6.) 'configure: error: Cannot locate header file libintl.h'<br />
Change:<br />
<blockquote class="tr_bq">
--with-gettext=shared,/Applications/MAMP/Library</blockquote>
to<br />
<blockquote class="tr_bq">
--with-gettext=shared,/opt/local</blockquote>
6.) Error: 'configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.'<br />
Change:<br />
<blockquote class="tr_bq">
--with-imap=shared,/Applications/MAMP/Library/lib/imap-2007e</blockquote>
to<br />
<blockquote class="tr_bq">
--with-imap=shared,/opt/local</blockquote>
<br />
If you need to install:<br />
<blockquote class="tr_bq">
sudo port install php54-imap</blockquote>
<br />
Uggghh, know what? Just update MAMP, it works now! :p <br />
<br />
<br />Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-17438165452092393612012-09-05T00:20:00.002-04:002012-09-05T00:28:02.533-04:00Hayley Smith on Burning Man<span class="st"><span class="f"> </span>"<i>No</i>, <i>it's all about a bunch of naked morons drinking and doing lots of drugs</i>."</span>Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-19471794563681220272012-07-11T15:34:00.001-04:002012-07-11T15:48:50.247-04:00i-Tech W3200 informationI've recently came across a 32" touchscreen from i-Tech, model W3200. I didn't have the fortune of receiving an install CD with it, and finding drivers or information on-line was quite difficult. Here is what I gathered however, and how I eventually found out the proper drivers.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-yNZhMeVVCRs/T_3YW7HIkWI/AAAAAAAAAAs/bBgdq6AWIqc/s1600/p_00182.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-yNZhMeVVCRs/T_3YW7HIkWI/AAAAAAAAAAs/bBgdq6AWIqc/s320/p_00182.jpg" width="320" /></a></div>
<br />
<br />
<blockquote class="tr_bq">
<b><u>i-Tech Model:W3200</u></b><br />
<br />
<a href="http://www.itechlcd.com/">http://www.itechLCD.com</a><br />
<br />
<b>32" High Brightness Sunlight Readable Behind Window Display HB LCD, 1100 Nits</b><br />
<a href="http://www.i-techcompany.com/32inch-high-brightness-sunlight-readable-window-display-hb-lcd-w3200.html">http://www.i-techcompany.com/32inch-high-brightness-sunlight-readable-window-display-hb-lcd-w3200.html</a><br />
<br />
<a href="http://www.suntroniclcd.com/">http://www.suntroniclcd.com</a><br />
<br />
<b>32" W3200 (1100nits)</b><br />
<a href="http://suntroniclcd.com/products-w-series.html">http://suntroniclcd.com/products-w-series.html</a><br />
<br />
Made up of:<br />
1.) eGalaxTouch controller?<br />
-<a href="http://home.eeti.com.tw/web20/eg/Touch_Drivers.html">http://home.eeti.com.tw/web20/eg/Touch_Drivers.html</a><br />
<br />
Why did the instructions tell me to do this?!<strike><br />1.) a visualplanet Touchfoil<br /><br />http://www.visualplanet.biz<br /><br />Drivers: http://www.visualplanet.biz/get-interactive/driven-to-interaction.php<br />If the shortcut on the desktop fails:<br />Point it to: /Applications/Touch screen?????/MMA9Launch<br /><br />If the driver fails to run:<br />On mac, make sure you are using Java RTE 10.7: Applications/Utilities/Java Preferences<br /><br />Selecting the drivers: ???????? Where is that bar-code?!</strike><br />
<br />
2.) Realtek LCD monitor controller monitor<br />
-Thankfully no drivers necessary!</blockquote>
<br />Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-88429729272818075312012-05-21T22:34:00.003-04:002012-05-21T22:35:44.665-04:00Facebook canvas resize for an app tabAs a tip, if you are having trouble getting a Facebook API canvas function, such as <i>FB.Canvas.setSize()</i> or <i>FB.Canvas.setAutoGrow()</i>, to work it may be <i>FB._https = true</i> tripping you up. If you have <i>FB._https = true</i> set anywhere, try commenting it out or straight up removing it and see it the problem persists. You may be surprised.Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-87796673921812658702011-06-02T00:57:00.000-04:002011-06-02T00:57:37.509-04:00Using the GNU diff tool to make patch files from exported repository directoriesI had a working copy from a repository I didn't want to directly modify (as I don't want to waste bandwidth checking out a new copy over and over or deal with reverting *I have my reasons*) so I exported a copy and modified that. After modifying it I wanted to make a patch file of the changes. Since I exported it however there was no connection to the repo, or specifically the repo client I was using, so the client's diff/patch tools were useless. However, that is good, I would rather do it this way anyway. :)<br />
<br />
Using the diff tool (utility, whatever) I got exactly what I wanted: a unified diff file of all the files in a directory (recursively) including newly added files, but not removed files and some other pesky files.<br />
<br />
Here is the command I used: <br />
<br />
<div style="font-family: "Courier New",Courier,monospace;">diff -u -r -x '*.meta' --unidirectional-new-file ./repo_dir/ ./exported_dir/<br />
</div><br />
<table border="2px"><tbody>
<tr> <th>Parameter </th> <th>Description </th> </tr>
<tr> <td>-u </td> <td>Unified diff </td> </tr>
<tr> <td>-r </td> <td>Recursively traverse the directory </td> </tr>
<tr> <td>-x '*.meta' </td> <td>Ignore all files ending in .meta (For Unity3D's "repo friendly-ness") </td> </tr>
<tr> <td>--unidirectional-new-file </td> <td>Include new files in the diff, but not removed ones (for that use -N) </td> </tr>
<tr> <td>./repo_dir/ </td> <td>Unmodified </td> </tr>
<tr> <td>./exported_dir/ </td> <td>Contains modified files </td> </tr>
</tbody></table><a href="http://www.blogger.com/goog_2133546466"><br />
</a><br />
Diff's help and <span style="font-family: "Courier New",Courier,monospace;">man</span> pages are pretty sparse, the online manual is much better: <a href="http://www.gnu.org/software/diffutils/manual/">http://www.gnu.org/software/diffutils/manual/</a>Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-29775433432031947632011-06-01T15:21:00.001-04:002011-06-02T00:59:32.749-04:00OpenCL on ATI Mobility RadeonIn my recent adventure of getting OpenCL working on my laptop (see: <a href="http://hackedtogether.blogspot.com/2011/06/catalyst-install-manager-not-installing.html">Catalyst Install Manager not installing device drivers</a>) I was having a hard time figuring out why even though I had the latest drivers for my card (an ATI Mobility Radeon HD 5870) and even the <a href="http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx">AMD Accelerated Parallel Processing (APP) SDK (formerly ATI Stream)</a>, OpenCL was not working. My GPU was not showing up as an OpenGL device using <a href="http://www.ozone3d.net/gpu_caps_viewer/">GPU Caps Viewer</a>, and the examples from the AMD APP SDK were clearly stating:"GPU not found. Falling back to CPU device."<br />
<br />
After a bit of trouble and frustration I found a post by <a class="bigusername" href="http://www.techpowerup.com/forums/member.php?u=66453">animal007uk</a> in the thread <a href="http://www.techpowerup.com/forums/showthread.php?t=140419">http://www.techpowerup.com/forums/showthread.php?t=140419</a> (go straight to <a href="http://www.techpowerup.com/forums/showpost.php?p=2191856&postcount=15">their post here</a>)<br />
<br />
For the Mobility Radeon card you need the specific Mobility drivers which are available (Win7 64-bit) at <a href="http://support.amd.com/us/gpudownload/windows/Pages/radeonmob_win7-64.aspx">http://support.amd.com/us/gpudownload/windows/Pages/radeonmob_win7-64.aspx</a> as mentioned in <a class="bigusername" href="http://www.techpowerup.com/forums/member.php?u=66453">animal007uk</a>'s post.<br />
<br />
Now OpenCL is working perfectly! Yay!Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0tag:blogger.com,1999:blog-6635640181672172073.post-23792529149472893222011-06-01T14:54:00.004-04:002011-06-02T01:00:55.315-04:00Catalyst Install Manager not installing Display Drivers<iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=hackedtogether-20&o=1&p=8&l=bpl&asins=B0039825JE&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"></iframe><br />
<br />
Today while I was trying to get OpenCL (<a href="http://en.wikipedia.org/wiki/OpenCL">Wikipedia Link</a>) working on my <a href="http://rog.asus.com/Product.aspx?PId=32">Asus G73Jh Laptop</a> (<a href="http://www.asus.com/Notebooks/Gaming_Powerhouse/G73Jh/">Link 2</a>) with an <a href="http://www.amd.com/us/products/notebook/graphics/mobility-radeon-5000/mobility-radeon-5800/Pages/mobility-radeon-5800.aspx">ATI Mobility Radeon HD 5870 Graphics Card</a> I decided to try completely uninstalling and reinstalling all AMD/ATI drivers and software. I used the ATI Catalyst Install Manager's "Express Uninstall ALL ATI Software" option. However after restarting I tried to install the most current Catalyst Software Suite to find that while choosing a "Custom" setup that a number of the options were not showing up, most worrying the "Display Drivers" were not being installed. Attempting to upgrade the graphics card's drivers via Windows (Device Manager) didn't help, nor did attempting to install the drivers (in the Catalyst Software Suite's <span style="font-family: "Courier New",Courier,monospace;">Packages\Drivers\Display\W76A_INF</span> directory) manually.<br />
<br />
I thought I was really stuck when I decided to download the drivers from the COMPUTER'S manufacture's website (<a href="http://support.asus.com/download/options.aspx?SLanguage=en&type=1">Asus</a>) verses the GRAPHICS CARD'S manufacture's (<a href="http://support.amd.com/us/gpudownload/Pages/index.aspx">AMD/ATI</a>) website.<br />
<br />
This allowed me to get an initial install of the graphics card's driver from which I could then install the latest drivers from the card's manufactures website. :)Datapointerhttp://www.blogger.com/profile/10251525426046775984noreply@blogger.com0