Showing posts with label on. Show all posts
Showing posts with label on. Show all posts

Saturday, August 27, 2016

Conan OBrien on Korean drama One More Happy Ending 한번 더 해피엔딩

Conan OBrien on Korean drama One More Happy Ending 한번 더 해피엔딩


In case you missed it, Conan made his cameo appearance on a Korean soap opera drama last night. I was hoping hed be given a part thats a bit more comical, but this show isnt known for its outstanding creativity or anything. But hey hes Conan and his sleazy, oily tone made me laugh, so well done Coco.

Basically, in this scene, Conan plays a potential client for an international arranged dating/marriage service. But when he sees how perfectly beautiful the match-maker is, he starts describing his "ideal woman" as... her. Thus he ends up backing out of the deal, because if he cant have her, hell have no one. As hes walking out, he tells her to have courage: love conquers all.

Ill embed the clips below. You should be able to use the YouTube link if youre outside Korea. Inside Korea, try the Naver TVcast link.





Conan seems to be having a great time in Korea, and Im glad he brought his K-buddy Steven Yeun with him. Theyve been posting a lot of pics of their trip over on the Team Coco Instagram, but this one of them at the DMZ is probably my favorite.

??! ??? ???????. ?? ?????!! #????? #thankyouforyourservice #?????? #????? #??? #ilovekorea #????? #conankorea (Salute! Thank you for the hard work in the freezing cold. Stop falling, snow! #thankyou #realmen #panmunjeom #stupidsnow #dmz)
A photo posted by Conan OBrien (@teamcoco) on

On a personal note, I enjoy seeing these kind, warm-hearted celebrities having fun over here (or putting on a great show looking like theyre having fun, at least). I thought Jack Black did a great job on Infinite Challenge. Maybe Ive been here too long, a lot of things that used to seem fun and exciting are just routine now. Hey everybody experiences that right? But through their fresh eyes, this dead heart inside me gets a little flutter, remembering things like my own first time in a PC Bang, etc.

Get

Read more »

Thursday, August 25, 2016

10원 Tips on Facebook

10원 Tips on Facebook


Just a quick note to say that if you like these posts, please "Like" my new 10? Tips Facebook Page to see updates in your Facebook news feed.

10? Tips


Of course, Facebook doesnt always show all posts, so I recommend following via Twitter, E-mail, or RSS.

Thanks so much for all your comments and support. Its great to know this hobby of mine is helpful.




Get

Read more »

Sunday, August 21, 2016

Arduino Leonardo and Arduino Micro A Hands On Guide for Beginner

Arduino Leonardo and Arduino Micro A Hands On Guide for Beginner


Arduino Leonardo and Arduino Micro: A Hands-On Guide for Beginner

Arduino Leonardo and Arduino/Genuino Micro are development boards which runs ATmega32U4. This book helps you to get started with Arduino Leonardo and Arduino/Genuino Micro development. Several case samples are provided to accelerate your learning. The following is highlight topics in this books:
* Preparing Development Environment
* Setting Up Arduino Leonardo and Arduino Micro
* Writing and Reading Digital Data
* PWM and Analog Input
* Working with I2C
* Working with SPI
* Accessing EEPROM
* Arduino Networking
* Keyboard and Mouse HID


Get

Read more »

Monday, August 15, 2016

Arduino Mega Draw bitmap on 3 2 480 x 320 TFT LCD Shield using UTFT

Arduino Mega Draw bitmap on 3 2 480 x 320 TFT LCD Shield using UTFT


This post show how to draw bitmap on 3.2" 480 x 320 TFT LCD Shield using UTFT, run on Arduino Mega 2560.



Before start, you have to install UTFT library on your Arduino IDE.

Once installed, its a program ImageConverter565.exe in the Tools directory under the library, used to convert image files to array in .c (.raw) format, can be loaded in our sketch.

This video show how:


Example code, MegaUTFTBitmap.ino
#include <UTFT.h>

UTFT myGLCD(CTE32HR,38,39,40,41);

extern unsigned int Arduinoer[];

void setup() {
// put your setup code here, to run once:
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.drawBitmap(0, 0, 100, 100, Arduinoer);

}

void loop() {
// put your main code here, to run repeatedly:

}

Get

Read more »

Alfa WiFi USB Adapter on Windows 8

Alfa WiFi USB Adapter on Windows 8



Windows 8 Compatible List


? WLAN AutoConfig Wireless LAN Utility
AWUS036H ? N/A
AWUS036NH ? ?
AWUS036NHA ? N/A
AWUS036NHR ? ?
UBDo-g / UBDo-gt ? N/A
UBDo-n / UBDo-nt ? ?
Tube-U(G) ? N/A
Tube-U(n) ? ?




AUTO INSTALLATION


1. Make sure you PC is connecting to Internet
2. Plug AWUS036H into USB port directly
3. Add Hardware Wizard will search & install driver for you automatically
  
      



INSTALL DRIVER MANUALLY

(Thats t take AWUS036H as example)
1. Plug in AWUS036H into Windows 8 and launch Device Manager
2. Expend your Network adapters section in Device Manager, click on Settings -> PC Info -> Device
Manager

     

3. Right click on AWUS036H (Realtek RTL8187 Wireless …. ) and select Update Driver Software ..

4. Press Browse button to locate driver for AWUS036H for Windows 7 where is located in CD as shown in following picture.
     


5. Driver is installed as shown in following picture


Get

Read more »

Tuesday, August 9, 2016

Convert between SRT SMI subtitles on Ubuntu linux

Convert between SRT SMI subtitles on Ubuntu linux


I have a Korean cable box (from LG U+) with a USB stick input, which is convenient for watching movies but a pain for subtitles because it seems unable to play the common .SRT format. Instead, only subtitles in the SAMI (.SMI) format are supported.

Heres a very simple Ubuntu tool for converting between the two. It uses the command line, but wait wait dont go! Its super simple.

First, install libsubtitles-perl by running:

$ sudo apt-get install libsubtitles-perl

Next, navigate to the directory your subtitle file is in, then use one of these two commands to convert:

SMI -> SRT
$ subs -c srt filename.smi -o filename.srt

SRT -> SMI
$ subs -c smi filename.srt -o filename.smi

And thats it!

Credit: http://z980.blogspot.kr/2012/08/smi-srt-convert-on-ubuntu.html

Also, if youre (in Korea and) looking for subtitle converters with a GUI, I suggest "Subtitle Editor" because neither Gaupol nor Gnome Subtitles can save into the SAMI format.


Get

Read more »

Display your Blogger posts on a Google Map

Display your Blogger posts on a Google Map


In this post, well make a full-size Google Map that contains all the location-tagged posts from your Blogger feed. It will display full entries on the map.
If youre looking for a more simple map page that links to the posts, or for putting a map in your blogs sidebar as a widget, please see my other post.

UPDATE 2015-09
I edited the HTML file code below. Readers on Twitter alerted me to the fact that the RSS URL for blogs only goes so far back in time, meaning many older location-tagged posts were missing from the map. Ive replaced that URL format with another that seems to stretch all the way back.



---

I keep a travel blog for friends and family, and usually tag those Blogger posts with my location. Usually, this just adds a location tag to the bottom of the post, with a link you can click to see that spot on a map. Pretty boring. But heres a nice way to plot all your geocoded (location-tagged) Blogspot blog posts onto a single Google Map. Great way to revisit old posts and visually, geographically see where and when you were.

For example, here is the map with location-tagged posts from this blog. Just click each one to view the corresponding entry in its entirety. All of the entries appear similarly.

Screenshot of my Blog Map
This entry, coincidentally, will be location-tagged in Busan; not because Im there, but because a man can dream. Anyway, lets get started.

Step 1 - Edit the code

Copy the code below and paste it into a plain-text document.

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>GeoRSS Layers</title>
    <style>
      html, body, #map-canvas {
        height: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
    <script>
function initialize() {
  var myLatlng = new google.maps.LatLng(49.496675,-102.65625);
  var mapOptions = {
    zoom: 4,
    center: myLatlng
  }
  var map = new google.maps.Map(document.getElementById(map-canvas), mapOptions);
  var georssLayer = new google.maps.KmlLayer({
    url:
http://www.blogger.com/feeds/blogId/posts/default?max=500&max-results=500
  });
  georssLayer.setMap(map);
}
google.maps.event.addDomListener(window, load, initialize);
    </script>
  </head>
  <body>
    <div id="map-canvas"></div>
  </body>
</html>
The bold URL above needs to be replaced with whatever GeoRSS enabed feed you want to use.

Luckily, Blogger blogs already have this feature enabled. Thanks, Google. So if youre using Blogger, youll just need your blogId number. You can get this by simply logging into Blogger and visiting your blogs posts lists. Look up in the URL and youll see something like "blogID=48574832938473847". Copy this number and replace "blogId" in the code above with this number.

Save it as an HTML file.

Next, you need to replace blogId in that URL with your own Blogger blog ID number.

Step 2 - Upload the File

Now you need a host for this HTML file. Sadly, I dont think you can just paste this code into a Blogger entry page. Maybe you could edit the template but Im not a coding genius here.

The important thing is that the file must be accessible directly, so upload it to your own webserver, or your Dropbox public folder, or even to Google Drive. After youve uploaded the file to Google Drive, get its "shareable link". But were not done just yet. That shareable link will only open the file in the Google Drive viewer; not open the file directly. To do that, we need to edit the URL a bit. Copy just the number from your shared URL, and tack it on to the end of this string:
http://googledrive.com/host/xxxxxxxxxxxxxxx
That should be it! Youve now got a direct link to your map file.

Now you could just, for example, have a link on your blog, perhaps as a "Page" on your blog, that leads to that URL, as that is now your Blog Entries Map. But you might also want to embed the map on a page on your blog. In that case:

Step 3 - Embed (optional)

Just create a new Blogger page, switch to HTML editing, and paste this code, changing the URL to your files location:

<iframe height="400px" width="100%" frameBorder="0" scrolling="no"
        src="http://www.yourhost.com/yourfile.html">
    </iframe>

With Google+ all but dead, I hope Google gives some more love to Blogger. Its a bit bothersome to have to depend on these workarounds. This is why I actually prefer Naver Blogs. Its very easy to add a post map. Just wish they had an English interface.


Get

Read more »

Black reaction faces on Facebook are cute

Black reaction faces on Facebook are cute


If you use the Chrome extension Dark Reader (which I highly recommend) to apply a dark theme to your browsing, Facebooks new reaction faces emoji change to darker colors also. I actually think they look cuter this way. 

"Dark Reader" theme applies to Facebooks reaction faces
 
Yes, this is what I do on a Saturday night. 


Get

Read more »

Monday, August 8, 2016

Configuring imhangul options on Linux

Configuring imhangul options on Linux



This post has been incorporated into a larger post on typing in Korean on Lubuntu.



Get

Read more »

Getting Started with Intel Edison Sensors Actuators Bluetooth and Wi Fi on the Tiny Atom Powered Linux Module

Getting Started with Intel Edison Sensors Actuators Bluetooth and Wi Fi on the Tiny Atom Powered Linux Module


Getting Started with Intel Edison: Sensors, Actuators, Bluetooth, and Wi-Fi on the Tiny Atom-Powered Linux Module (Make : Technology on Your Time)

The Intel Edison is a crowning achievement of Intels adaptation of its technology into maker-friendly products. Theyve packed the dual-core power of the Atom CPU, combined it with a sideboard microcontroller brain, and added in Wi-Fi, Bluetooth Low Energy, and a generous amount of RAM (1GB) and flash storage (4GB). This book, written by Stephanie Moyerman, a research scientist with Intels Smart Device Innovation Team, teaches you everything you need to know to get started making things with Edison, the compact and powerful Internet of Things platform.

Projects and tutorials include:
  • Controlling devices over Bluetooth
  • Using Python and Arduino programming environments on Edison
  • Tracking objects with a webcam and OpenCV
  • Responding to voice commands and talking back
  • Using and configuring Linux on Edison


Get

Read more »

Saturday, August 6, 2016

Arduino Uno A Hands On Guide for Beginner

Arduino Uno A Hands On Guide for Beginner


Arduino Uno: A Hands-On Guide for Beginner

Arduino board is a popular board for embedded development. This book helps you to get started with Arduino Uno development. Several scenario samples are provided to accelerate your learning process. The following is highlight topics: 
* Preparing Development Environment 
* Setting Up Arduino Uno 
* Writing and Reading Digital Data 
* Serial Communication (UART) 
* PWM and Analog Input 
* Working with I2C 
* Working with SPI 
* Accessing EEPROM 
* Arduino Networking


Get

Read more »

Displaying your Blogger posts location tag on mobile templates other than Dynamic Views

Displaying your Blogger posts location tag on mobile templates other than Dynamic Views


Vanishing Location Information on Mobile


Im a big fan of tagging my Location on Blogger posts, especially on my travel blog, where I review restaurants, document my trips with tips for other travellers, etc. Blogger adds your location tag to the post in the post footer by default, which is great, but more and more people are browsing blogs on their mobile phones rather than the desktop.



As it stands, it seems if your Blogger blog is using the "Dynamic Views" template, the posts location information will be shown on both the desktop and the mobile view, including the address being a clickable link to a Google Map.

But I recently noticed that this is not the case for any other template. I tested out Bloggers other templates (Simple, Picture Window, Awesome Inc, Watermark, Ethereal, Travel, all of them!) and noticed that the location tag is not included when using these templates on mobile.

Heres a demonstration. Heres a test post I made, location tagged at beautiful Bass Lake. These are screen-shots from my phone. Notice the location info displayed here in "Dynamic Views" layout:



Great, I like that a lot. But what if Im not a fan of Dynamic Views, for one because it takes longer to load?

Heres the same post, with the blog template switched to "Simple":


As you can see, the location information is gone. How can we get it back?

A possible solution?

This can be fixed by adding a short bit of code to your blogs template, telling it to display the location on mobile. However, in my tests, this method only works:
  • on SOME templates ("Simple" but not "Awesome Inc" for example) and
  • seems to only work on blogs that do not use Google+ integration (i.e. still use the old Blogger profile)
Update: I heard from others that this does work on all templates, so give it a try!

Anyway, to try this, edit your blogs template HTML by going to (duh) Template -> Edit HTML.

*** First make a back-up of your blogs template, just in case something goes wrong ***

Now, in the HTML editor, you need to find this tag:
<b:includable id=mobile-post var=post>
This will contain the code for how your blog is displayed on mobile devices. You may or may not need to click the little arrow on the side to expand this entry.

Now all you have to do is add this bit of code to the spot where you want the Location displayed. For example, I like having mine displayed in the post footer, so I search for this (it was about 50 lines of code down from the mobile-post tag in mine):
<div class=post-footer-line post-footer-line-1>
Now then, right below this line, add in the special location-displaying code:
<span class=post-location>
<b:if cond=data:top.showLocation> <b:if cond=data:post.location>
<data:postLocationLabel/> <a expr_href=data:post.location.mapsUrl target=_blank><data:post.location.name/></a> </b:if> </b:if> </span>
And thats it! Now I save the template, and when I refresh my blog post, I see this:


The location details are back! Success!

Helpful Notes

If, like me, you are not a coder in any way at all, please take note: your blog HTML template is going to have multiple entries of the kind <div class=post-footer>. I wont even pretend to know what each of them does or why they all exist. All I can tell you is that this will only work if you put it in the section under that <id=mobile-post var=post> tag from above.

Also, as I mentioned above, Ive had limited success, depending on the particular blog template. Id love to hear your experiences with this. 

Credit

Credit for the majority of this idea goes to whose blog post here gave me the code used in this trick. I appreciate his support in trying to solve this.

P.S. This post is location tagged at beautiful Napa Valley, California. If the code works, you will hopefully see this post tagged (if youre reading on mobile) as such.


Get

Read more »

Friday, August 5, 2016

Blogger Map widget for showing geotagged blog posts on a map

Blogger Map widget for showing geotagged blog posts on a map


This post will show you how to add a side-bar widget to your Blogger/Blogspot blog. The map will display pushpins at each of your location-tagged posts locations. Click the pins, and a small card appears with the title, date, and a link to the post.
If youd like the cards/pins to show the full post entries, click here for my other post.

UPDATED June 2015
You can embed the map in a page too, not just as a widget. 

Location-tagged Blogger posts


I like using Blogger, and I always geotag the posts on my travel blog using the "Location" setting in the right-hand side of the Blogger compose page.

Bloggers "Location" tag feature



This adds a nice "Location" line under my posts that displays the address of my blog posts geotag, and clicking it opens a Google Map of that location.

Until today, I thought that was all you could do with this feature, which seemed a bit disappointing. Ideally, I was hoping there was a way to display, on one single map, the locations of all my blog posts. Sort of like how you can visualize all your Foursquare checkins with its KML feed, I wanted to treat my Blogger blog posts as "Check-ins" and see where all Ive been.

It turns out that this is not only possible, but also very easy to do. The technology behind it seems ancient (2008) but I just tested it out (2014) and it works beautifully!

Adding the widget from the original source (easy)


The most simple way is just to follow the directions from this old "Blogger in Draft" post:

  1. Go to Bloggers "Layout" editing section
  2. Add a new Gadget
  3. Add by URL
  4. Paste this URL in the box:
     http://blogmap-gadget.googlecode.com/svn/trunk/blogmap.xml
  5. Save it and edit the gadget, using your blogs feed URL as the source
    (http://yourblog.blogger.com/feeds/posts/default)


Adding the widget from your own source (optional)


The widget source-code is coming from a very old "Blogger in Draft" post, and you might worry that it could be deleted or lost, especially since this seems to be the only location on the net for it. Ill repost it here, so that you could potentially self-host the file if need-be.

In that case:
  1. Copy the code from the box below and save it in a plain text document, giving it the extension .xml
  2. Upload the document to a place that allows public full access to the document. Dont paste it into a blog post. It has to be accessible as text. Google Sites sometimes works, as can your Dropbox Public folder, or any other file hosting site that lets you link directly to the file. Google Drive can also do this.  
  3. Use this new URL, the location of the file you just uploaded, as the URL when you add the widget via the "Adding by URL" option.
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="Blog Map" description="Display blog posts on a map." height="250" author="Brian Ngo" author_email="briancse+blogmap@gmail.com"> <Require feature="dynamic-height" /> <Require feature="setprefs" /> </ModulePrefs> <UserPref name="feedUrl" display_name="Blogs GeoRSS feed URL. Save as empty to reset." /> <UserPref name="height" display_name="Height in pixels" required="true" default_value="250" /> <Content type="html"> <![CDATA[ <style type="text/css"> .inputBox { border-color: #777777 #AAAAAA #AAAAAA #777777; border-style: solid; border-width: 1px; padding: 2px; width: 100%; } .inputBox-hint { border-color: #777777 #AAAAAA #AAAAAA #777777; border-style: solid; border-width: 1px; padding: 2px; width: 96%; color: #999; font-style: italic; } .statusMsg { font-size: small; color: #333; font-style: italic; } .statusMsg-error { font-size: small; color: red; font-weight: bold; } </style> <script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAn138JcpDQexRxBMx-GYAehTZqGWfQErE9pT-IucjscazSdFnjBS4hjjTEOYU89NegWNS5Bv9cZZO8g" type="text/javascript"></script> <div id="instructions" style="display: none; font-size: 14px;"> <p> To display your blog posts on a map, enter your <b>blogs URL</b> below. Alternatively, you can also enter your blogs <b>RSS or Atom feed URL</b>. </p> <input type="text" id="feedUrl" name="feedUrl" class="inputBox-hint" value="Example: http://your-blog-url.blogspot.com" /> <div style="padding: 5px 10px 0 0;"> <input type="button" id="okButton" name="okButton" value="Fetch my blog!" /> </div> <div id="statusMsg" class="statusMsg"></div> </div> <div id="map"></div> <script type="text/javascript"> var PREFS = new gadgets.Prefs(); var MAP = null; var WIDTH = gadgets.window.getViewportDimensions().width; var HEIGHT = PREFS.getInt(height); var FEEDURL = PREFS.getString(feedUrl); var XML = null; var BLOGSPOT_REGEX = new RegExp(blogspot.com/?$); var inputBoxActivated = false; function init() { gadgets.window.adjustHeight(HEIGHT); var container = document.getElementById(map); container.style.height = HEIGHT + px; container.style.width = WIDTH + px; if (!FEEDURL) { document.getElementById(instructions).style.display = ; document.getElementById(feedUrl).onclick = activateInput; document.getElementById(okButton).onclick = validateFeedUrl; } else { fetchFeed(); } } function activateInput() { if (!inputBoxActivated) { document.getElementById(feedUrl).className = inputBox; document.getElementById(feedUrl).value = ; inputBoxActivated = true; } } function validateFeedUrl() { document.getElementById(statusMsg).className = statusMsg; document.getElementById(statusMsg).innerHTML = Validating feed...; var feedUrl = maybeFixUrl(document.getElementById(feedUrl).value); var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.FEED; params[gadgets.io.RequestParameters.NUM_ENTRIES] = 1; params[gadgets.io.RequestParameters.GET_SUMMARIES] = false; gadgets.io.makeRequest(feedUrl, handleValidateFeed, params); } /** * Will attempt to detect a blogspot.com url without the feed suffix * (e.g., http://ginternfoodblog.blogspot.com/). If detected, adds * the feed suffix ("/feeds/posts/default"). Also, adds an http:// * protocol if one isnt present. */ function maybeFixUrl(url) { // trim whitepsace. url = url.replace(/^s*(S*(s+S+)*)s*$/, "$1"); // test blogspot url fix if (BLOGSPOT_REGEX.test(url)) { if (url[url.length - 1] != /) { url += /; } url += feeds/posts/default; } // test http protocol fix if (url.indexOf(http://) != 0) { url = http:// + url; } return url; } function handleValidateFeed(response) { if (response && response.data && response.data.Entry) { var feedUrl = response.data.URL; PREFS.set(feedUrl, feedUrl); FEEDURL = feedUrl; fetchFeed(); } else { document.getElementById(statusMsg).className = statusMsg-error; document.getElementById(statusMsg).innerHTML = Couldn find feed. Is the URL correct?; } } function fetchFeed() { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.DOM; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET; gadgets.io.makeRequest(FEEDURL, handleFetchFeed, params); } function handleFetchFeed(response) { document.getElementById(instructions).style.display = none; var data = response.data; var points = data.getElementsByTagName(georss:point); // We werent able to get any georss:point nodes, this might be a // Webkit browser and just wants "point" as the tag name. if (points.length == 0) { points = data.getElementsByTagName(point); } var geoposts = []; for (var i = 0; i < points.length; i++) { var latlngPair = points[i].firstChild.nodeValue.split( ); var title = points[i].parentNode.getElementsByTagName(title)[0] .firstChild.nodeValue; var date; var link; var pubDate = points[i].parentNode.getElementsByTagName(pubDate); if (pubDate.length > 0) { // This is an RSS feed. var tempDate = new Date(); tempDate.setTime(Date.parse(pubDate[0].firstChild.nodeValue)); date = tempDate.toLocaleDateString(); link = points[i].parentNode.getElementsByTagName(link)[0] .firstChild.nodeValue; } else { // This is an Atom feed. date = points[i].parentNode.getElementsByTagName(updated)[0] .firstChild.nodeValue.substring(0, 10); var links = points[i].parentNode.getElementsByTagName(link); for (var n = 0; n < links.length; n++) { if (links[n].getAttribute(rel) == alternate) { link = links[n].getAttribute(href); break; } } } geoposts.push({ title: title, point: new google.maps.LatLng(latlngPair[0], latlngPair[1]), date: date, link: link }); } createMap(geoposts); } // Doing two loops here... non-ideal.. too tired to optimize. function createMap(geodata) { var bounds = new google.maps.LatLngBounds(); for (var i = 0; i < geodata.length; i++) { bounds.extend(geodata[i].point); } MAP = new google.maps.Map2(document.getElementById(map)); MAP.setCenter(bounds.getCenter(), MAP.getBoundsZoomLevel(bounds)); MAP.addControl(new google.maps.SmallZoomControl()); for (var i = 0; i < geodata.length; i++) { var marker = new google.maps.Marker(geodata[i].point, { title: geodata[i].title }); MAP.addOverlay(marker); var infoHtml = <div style="font-size: small"> + <b> + geodata[i].title + </b> + <div style="color: #666;"> + Posted on + geodata[i].date + </div> + <div style="font-size: small"> + <a href=" + geodata[i].link + " target="_blank"> + View post</a></div> + </div>; marker.bindInfoWindowHtml(infoHtml); } } gadgets.util.registerOnLoadHandler(init); </script> ]]> </Content> </Module>

Blog Map widget in action


Here is a screenshot of this beautiful, underutilized, and probably forgotten feature. The map that is now displayed in your blogs sidebar shows pins at your posts geotagged locations. You can click the pins for a small pop-up dialog that contains a link to the blog post that was tagged at that location.

Blog Map sidebar widget
This relies on your blogs RSS feed, so it might not display your older location-tagged entries. In this case, just add the parameter ?max-results=200 to the end of your blog feed URL. (Note: see my other post for a potentially better blog URL format to ensure all posts are pulled in.)

Embedding the map in a Blogger Page


You dont have to just use this as a side-bar widget. The map can also be embedded on one of your Blogger pages (it works better on a "page" not a "post").

This is very easy. Just create a new Blogger page, switch to HTML editing, and paste this code, changing the URL for your blog:

<iframe frameborder="0" height="250" id="map" name="map" src="//www-blogger-opensocial.googleusercontent.com/gadgets/ifr?url=http://blogmap-gadget.googlecode.com/svn/trunk/blogmap.xml&amp;container=blogger&amp;view=default&amp;lang=en&amp;country=ALL&amp;sanitize=0&amp;v=38841e006da8e2dd&amp;libs=core:dynamic-height:setprefs&amp;parent=http://testofpyojina2.blogspot.com/&amp;up_feedUrl=http://testofpyojina2.blogspot.com/feeds/posts/default&amp;up_height=250&amp;mid=1#up_height=250&amp;up_feedUrl=http://testofpyojina2.blogspot.com/feeds/posts/default&amp;st=e%3DAFlCd0Vr5Ehr8RmECOHLq0S%252F20Y33QUXiflbjKfRMJKtj9KwkD9YS3Uq3Xezr3ffRqOsHwYznsMMLJL1lzdH2mGi20gGUDm6kZZjf5a%252F1QQDC%252B%252B6NPHmoRqokx%252BjvN6pekTyBhptzGC9%26c%3Dblogger&amp;rpctoken=2160341050058157284" style="display: block; width: 100%;"></iframe>

It does not seem to work if your blogs feed is redirected through Feedburner, and the script can sometimes hang if you have too many entries. If anyone has any solution to these issues, let me know in the comments!


If you use Blogger, please add the widget to your Blogger blog, and demonstrate its usefulness to the masses! Id love for this wonderful bit of code to be revived, and for Google to be more active in supporting Blogger. In the crazy world of Google+ checkins and Swarm checkins and Facebook checkins and all the other checkin services, its nice to see location-tags on Blogger still being supported. Its a great way to revisit old memories and see your blog journey in a new way.


Get

Read more »

Thursday, August 4, 2016

Getting Started with 3D Printing A Hands on Guide to the Hardware Software and Services Behind the New Manufacturing Revolution

Getting Started with 3D Printing A Hands on Guide to the Hardware Software and Services Behind the New Manufacturing Revolution


Getting Started with 3D Printing: A Hands-on Guide to the Hardware, Software, and Services Behind the New Manufacturing Revolution

Make: Getting Started with 3D Printing is a practical, informative, and inspiring book that guides readers step-by-step through understanding how this new technology will empower them to take full advantage of all it has to offer. The book includes fundamental topics such as a short history of 3D printing, the best hardware and software choices for consumers, hands-on tutorial exercises the reader can practice for free at home, and how to apply 3D printing in the readers life and profession. For every maker or would-be maker who is interested, or is confused, or who wants to get started in 3D printing today, this book offers methodical information that can be read, digested, and put into practice immediately!


Get

Read more »

Download and Install 64 bit Fritzing on Windows 10

Download and Install 64 bit Fritzing on Windows 10



Fritzing is an open-source hardware initiative that makes electronics accessible as a creative material for anyone.

~ http://fritzing.org/

Video show how to download and install 64 bit Fritzing on Windows 10




Get

Read more »

Tuesday, August 2, 2016

Arduino Genuino 101 example to read button and turn ON OFF LED

Arduino Genuino 101 example to read button and turn ON OFF LED



Simple example of Arduino/Genuino 101, to read button (on pin 6) and control LED (on pin 7) accodingly.

Connection:

_101_button_led.ino
/*
* Arduino/Genuino 101 example
* to read button and turn ON/OFF LED accordingly
*/

int LED = 7;
int BTN = 6;

void setup() {
pinMode(LED, OUTPUT);
pinMode(BTN, INPUT_PULLUP);

//indicate program start
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
delay(200);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
}

void loop() {
digitalWrite(LED, !digitalRead(BTN));
delay(100);
}



Get

Read more »

Monday, August 1, 2016

Backup SLBL on IronPort C160 Devices

Backup SLBL on IronPort C160 Devices



How do I backup and restore my safelist / blocklist?

Making a backup of the safe list, block list:
  1. Go to the Configuration File option under the System Administration tab on the GUI.
  2. Near the bottom of this screen you will find the section labeled: End-User Safelist/Blocklist Database (IronPort Spam Quarantine).
  3. Press the button labeled "Backup Now". This will save a copy as a .csv file in the configuration directory on your appliance.
Note: If this feature is not enabled, you can enable it by choosing Monitor > Quarantines.
Moving the backup to another box:
  1. Make certain that you have the FTP service enabled on one of your network interfaces. This would typically be the management interface. You can check this in the IP Interfaces section under the Network tab on the GUI.
  2. From your file server, FTP to the IronPort appliance on the above mentioned interface.
  3. Login as an admin user.
  4. The backup file you made earlier should be right there in the root directory.
Restoring the backup:
  1. This is basically the reverse procedure of the backup.
  2. FTP the file from your file server back to the IronPort appliance in the configuration directory.
  3. Go back into the Configuration File section under the System Administration tab.
  4. Press the "Select File to Restore" button.
  5. Select from the list of valid backup files.
     
     

Get

Read more »

Friday, July 29, 2016

ATI Catalist 7 12 on Ubuntu 7 10

ATI Catalist 7 12 on Ubuntu 7 10


Recently Ive tried this drivers and compiz started working on my Mobility Radeon X2300.
Heres how Ive got the drivers to work.
1 remove old drivers
first you need to remove the drivers downloaded from the ubuntu repository.

$ sudo apt-get remove xorg-driver-fglrx

2 Install the new driver
follow the procedure as described on point 2 at http://wiki.cchtml.com/index.php/Ubuntu_Gutsy_Installation_Guide

3 bugs
With this lease you can enable compiz but video playback, google-earth and all the applications which require an overlay start flickering and are unusable.
The system works perfectly with compiz disables :(

4 power management
With this release ati (amd) claims that the problems related to suspend and hibernate are solved.
I havent tried it yet as Ive managed to disable this features time ago (when the system tried to suspend hanged-up) and I dont want to retry right know to figure out if now is working (maybe on a fresh install of 8.04). If you think you can have an easy configuration guide (packages needed, and manual editing to /etc/... files feel free to contact me. If it works on my Asus notebook Ill add it on my blog.

Get

Read more »

Thursday, July 28, 2016

Blink NodeMCU on board LED using Arduino IDE with ESP8266 core for Arduino and more examples

Blink NodeMCU on board LED using Arduino IDE with ESP8266 core for Arduino and more examples



To program NodeMCU in Arduino IDE, we have to install esp8266 board (ESP8266 core for Arduino) to Arduino IDE.

Add Additional Board Manager URL for ESP8266 board:
> File > Preference

Add "http://arduino.esp8266.com/stable/package_esp8266com_index.json" in Additional Board Manager URLs.


Add ESP8266 board to Arduino IDE:
- Open Boards Manager in Arduino IDE
- Search "esp8266" or "NodeMCU", you will find "esp8266 by ESP8266 Community". Install it.


Test:
Once esp8266 board installed, you can find an example to blink the on-board LED.
File > Examples > ESP8266 > Blink

/*
ESP8266 Blink by Simon Peter
Blink the blue LED on the ESP-01 module
This example code is in the public domain

The blue LED on the ESP-01 module is connected to GPIO1
(which is also the TXD pin; so we cannot use Serial.print() at the same time)

Note that this sketch uses LED_BUILTIN to find the pin with the internal LED
*/

void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level
// but actually the LED is on; this is because
// it is acive low on the ESP-01)
delay(1000); // Wait for a second
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH
delay(2000); // Wait for two seconds (to demonstrate the active low LED)
}

You can upload it to NodeMCU, to toggle the on-board LED.


notice:
- Once the ModeMCU programmed, the original firmware will be erased. To restore the original firmware with Lua shell, you have to flash the firmware again.

Next:
- Read NodeMCU MAC address using Arduino IDE with esp8266 library
- Get my IP address
- Run diagnosis
- NodeMCU to read analog input, A0
- NodeMCU act as WiFi client to update dweet.io
- Display on 128x64 I2C OLED, using Adafruit SSD1306 and GFX libraries
- esp8266-OLED, another esp8266-Arduino library for I2C-OLED displays
- NodeMCU/ESP8266 act as AP (Access Point) and simplest Web Server
- NodeMCU/ESP8266 act as AP (Access Point) and web server to control GPIO
- NodeMCU/ESP8266 implement WebSocketsServer to control RGB LED
- NodeMCU/ESP8266 WebSocketsServer, load html from separate file in flash file system

Get

Read more »

Arduino Mega read string from Serial display on 3 2 480 x 320 TFT LCD Shield

Arduino Mega read string from Serial display on 3 2 480 x 320 TFT LCD Shield



Arduino example run on Mega 2560, read string from Serial port, and display on 3.2" 480 x 320 TFT LCD Shield usin UTFT library. The sting is limited to 30 characters on each line.


Mega_UTFT_SerialRead.ino
/*
* Example run on Arduino Mega 2560 to read string from Serial,
* then display on 3.2" 480 x 320 TFT LCD Shield
*
* http://arduino-er.blogspot.com/search/label/3.2%22%20480%20x%20320%20TFT%20LCD%20Shield
*/

#include <UTFT.h>

extern uint8_t BigFont[];

UTFT myGLCD(CTE32HR,38,39,40,41);

const int NumOfRow = 20;
const int HeightOfRow = 16;
const int CharPerRow = 30;

String buffer[NumOfRow];

void setup()
{
Serial.begin(57600);
myGLCD.InitLCD();
myGLCD.clrScr();

myGLCD.setColor(255, 255, 255);
myGLCD.setBackColor(0, 0, 0);

myGLCD.setFont(BigFont);

myGLCD.print("Open Serial Monitor,", LEFT, 0);
myGLCD.print("to enter something.", LEFT, HeightOfRow);

initBuffer();
}

void loop()
{
String stringIn = Serial.readStringUntil( );
Serial.print(".");
if(!stringIn.equals("")){
Serial.print("*");
String stringToIns = stringIn.substring(0, CharPerRow);
insert(stringToIns);
Serial.println(stringToIns);
printBuffer();
}

}

void initBuffer(){
for(int i=0; i<NumOfRow; i++){
buffer[i] = "";
}
}

void insert(String ins){
for(int i=0; i<NumOfRow-1; i++){
buffer[i] = buffer[i+1];
}
buffer[NumOfRow-1] = ins;
}

void printBuffer(){
myGLCD.clrScr();
for(int i=0; i<NumOfRow; i++){
myGLCD.print(buffer[i], LEFT, i*HeightOfRow);
}
}



Get

Read more »