Here's A 7D6N Itinerary For These Lesser Known & Underrated Cities In South Korea
One word - Alpacas.
by Danial MartinusCover image via Danial Martinus & Zi Peng | Edited by SAYS
Last month, our friends at AirAsia X took us on an amazing, fun-filled adventure to South Korea
In collaboration with Incheon Tourism Organization and Gangwon Province Tourism, we did some pretty cool activities during our stay. Lasting eight days, we traveled through the metropolitan city of Incheon and explored the vast natural beauty of Gangwon Province.
To say the trip was fun is a severe understatement. We got to experience seven full days of jam-packed excitement, thrill, and relaxation!
This was our 7D6N itinerary:
Day 1 - Incheon, South Korea
Zooming down Asia's largest luge track at Mega Luge in Ganghwa Seaside Resort
After landing at Incheon International Airport, we headed straight to our first activity of the trip - Mega Luge at Ganghwa Seaside Resort!
Featuring the largest luge circuit in Asia, Mega Luge is definitely a stop to make when you fly to Incheon.
In order to reach Mega Luge, you've gotta take a short cable car ride up the hill. This won't break the bank, and you'll definitely get some super pretty views on your way up! The journey from Incheon International Airport will take you around two hours by bus, but the thrill you'll be experiencing at Mega Luge is totally worth it.
Even though you're not allowed to film or photograph your journey down the luge circuit (for safety reasons), there are multiple 'Photo Zones' along the track. Once you reach the bottom, you can choose to purchase a photo of your journey and forever immortalise whatever unglam face* you made as you raced toward the end! ;D
*I was so excited to purchase my photo, only to realise I looked like the Grinch.
There are two tracks to choose from - fast (5-6 minute journey) and slow (9-10 minute journey). If you want to take it easy and enjoy the cool mountain air, it's highly suggested that you take the slow track. If you're looking for that insane adrenaline rush, we don't need to tell you which track to take. ;)
Here are the details:
Opening hours: Summer - 9am to 9pm, Winter - 9am - 6pm
Address: 4-15, Seondu-ri, Gilsang-myeon, Ganghwa-gun, Incheon
Admission: 12,000 Won (~RM43) for individuals & 11,000 Won (~RM40) per person in a group of 20
Click here for more details.
Learning about the production of pure cotton at the Sochang Experience Center
Cotton was a ubiquitous material when it came to Korean clothing in the 50s and 60s. Sochang cotton as it's known, was hailed as the highest quality cotton one could get, due largely in part to its level of purity.
The Sochang Experience Center is a stop for those who want to gain an appreciation for the once-booming textile industry in Ganghwa. Since the development of newer, stronger materials, the Songcha cotton industry slowly declined, leaving only 10 factories still producing the pure cotton today. Not only is it rare, it's a specialised craft as well.
You can also come to the Sochang Experience Center for other relaxing activities, like taking part in a traditional tea ceremony and decorating your very own Sochang cotton handkerchief.
Here are the details:
Opening hours: 9am to 5pm daily
Address: 8, Nammunan-gil 20beon-gil, Ganghwa-eup, Ganghwa-gun, Incheon
Admission: Free
Getting lost in Joyangbangjik Cafe, a former-textile-factory-turned-coffee-shop
Located in Ganghwa, Joyangbangjik Café was built in 1933 and served as one of the largest textile factories in the city. Following the decline of the textile industry, the factory closed down.
Earlier this year, it reopened as a café, gallery, and art space. You can even find old antiques of all kinds here, like pool tables, rotary telephones, vintage toys, leather barber chairs, and much more scattered throughout the premises.
Other than the coffee (which was great, by the way), I tried out their famous carrot cake. It was so moist, with just the right amount of sugar.
You won't just find cool trinkets on the inside. Step outside of the café and you'll be greeted by a tonne of other old and rustic ephemera, like vintage table setups, telephone booths, and even an old tractor.
It truly is great to see an old, historical landmark given new life. The Joyangbangjik Café is one of the most unique places you'll ever come across, and is definitely a must-see.
Here are the details:
Opening hours: 11am to 9pm daily
Address: 12 Hyangnamu-gil 5 beon-gil, Ganghwa-eup, Ganghwa-gun, Incheon
Admission: Free, but you gotta pay for coffee of course!
Day 2 - Incheon, South Korea
Ditching a map in Chinatown
I bet you're wondering why the heck I'm telling you to visit Chinatown in Korea. It's simple, really - awesome photos and delicious food.
Lined with various eateries offering both Chinese and Korean fare, you're going to find it difficult to stop eating, seriously. To add to that, Incheon's Chinatown is the birthplace of jjajangmyeon, a hugely popular noodle dish. I can't stop drooling.
The main entrance to Chinatown is an awesome photo opportunity in itself, especially when you have less people (usually in the morning) crowding up the shot. In addition to the traditional food stalls and restaurants, you'll find a lot of souvenir shops, places selling cute socks, and cozy little cafés strewn about the area.
I recommend ditching a map and just going where your nose and eyes take you. It's pretty hard to get lost here, since the area is laid out in a grid system. You'll find cute surprises when you venture into tiny alleyways, like bright and colourful houses (pictured above) and even antique stores.
Here are the details:
Opening hours: 24/7
Address: Gaho-dong, Jung-gu, Incheon
Admission: Free, if you don't get any food or souvenirs ;)
Feeling like a kid again at the Songwol-dong Fairy Tale Village
Just a four-minute bus ride from Chinatown, the Songwol-dong Fairy Tale Village is one of the hottest photo spots in Incheon, due to the amount of colourful houses there, along with mural depictions of various fairy tales.
It was originally a booming neighbourhood back then, but as the residents grew older, and as the younger ones moved out, it slowly started to lose its appeal.
That is, until the government decided to give new life to the place by having artists decorate the entire neighbourhood with murals and quirky statues.
Here are the details:
Opening hours: 24/7
Address: Ayugongwonseo-ro 45beon-gil, Songwol-dong 3(sam)-ga, Jung-gu, Incheon
Admission: Free
Taking a nice stroll through Wolmido (Wolmi Island)
Though not technically an island, Wolmido is a super sweet tourist enclave lined with lots of restaurants serving up delicious, fresh-caught seafood. You can also catch the Wolmi Sea Train, which is a two-car train that runs on a 6.1km track. It's called a 'Sea Train' because the track itself straddles the coast line of Wolmido, with one side facing the sea.
 With your typical carnival-type atmosphere, it's also a great place to bring the kids to.
I recommend having lunch at any of the seafood restaurants there, because the food is guaranteed fresh. If you're up for a snack, there are a ton of street food stalls scattered about just so you can satiate that craving of yours after watching a mukbang video (lol).
Here are the details:
Opening hours: 24/7
Address: 81, Wolmimunhwa-ro, Jung-gu, Incheon
Admission: Free! :D
Day 3 - Gangwon Province, South Korea
Taking the Chuncheon Foreign Tourist Taxi
The Chuncheon Foreign Tourist Taxi is a chartered taxi service which brings foreign tourists around to major hotspots in a hop-on/hop-off style.
The base fare is about 20,000 Korean Won, or roughly RM70. That'll last three hours, and the drivers will bring you to a different spot every hour.  :)
As the tag above says, the Foreign Tourist Taxi really is an easy way to enjoy Chuncheon. Not only do you get to enjoy the views while transiting to each hotspot, you'll also get to relax and enjoy the super-comfortable rides!
 If you've got heavy bags that you won't necessarily be needing to bring to every single stop, you can just leave them in the taxi. The drivers are extremely friendly, approachable, and can understand English.
First stop - Soyanggang Skywalk, Chuncheon
The Soyanggang Skywalk is a glass walkway that allows visitors to 'walk over water' due to the transparent panels that make up its floor. Reaching 150 metres in length, you'll get amazing 360º views of Uiamho Lake with people on cute little paddle boats and even speedboats!
Second stop - Organic Farming Cafe, Chuncheon
Located in the Sinbuk area of Chuncheon, the Organic Farming Cafe is an ABSOLUTE MUST VISIT if you're ever around the area. The cafe itself serves homemade drinks made from local, organic produce, making it a great spot to just soak in the wonderful, expansive views of farmland.
The best part about this cafe is perhaps what's next to it - a field of pink muhly grass! You'll only be able to see the pink muhly during Fall. When it's Spring, you'll get to see a field of canola flowers instead. Of course, if you want to have the best experience, the pink muhly season is the best time to come. Do make sure to plan strategically, though. It can get super crowded!
Third stop - Soyanggang Dam
Located at the Soyang River, the Soyanggang Dam is a seriously beautiful spot to visit during sunset. I was told it was also the spot where RM (of BTS) made a stop on his solo trip. :)
Just further down the road from the dam is a jetty from which you can set off on a 10-minute ride to the foot of Obongsan Mountain. From there you'll be able to hike up to Cheongpyeongsa Temple.
Be careful, though. The hike features a lot of steep inclines, and some sections of the trail aren't paved. It's highly recommended to bring comfortable walking shoes, since the journey to the top by foot will take about an hour.
Dinner - When in Chuncheon, dakgalbi dinners are never a bad idea
After a long hike up Obongsan Mountain, we rewarded ourselves with a hearty portion of dakgalbi. To say it was delicious would be a severe understatement. It's dakgalbi done right!
It wouldn't be fair to say that this was the best dakgalbi in town, since there are so many places that serve the dish. But it was certainly the best dakgalbi I've ever had in my entire life. :)
Day 4 - Gangwon Province, South Korea
Fulfilling my childhood dream at Alpaca World
Situated up in the green forest of Hongcheon, Alpaca World is one of the most magical places in all of South Korea because of one thing - alpacas, duh. Not only do you get to pet and feed them, you also get to take them on short walks!
It's also the only place in the entire country where you'll be able to find alpacas at all. But aside from alpacas, you'll also be able to get up close with some rabbits, horses, and even free-roaming goats. :D
Here are the details:
Opening hours: 10am to 6pm daily, Ticketing counter closes at 5pm
Address: 310, Pungcheon-ri, Hwachon-myeon, Hongcheon-gun, Gangwon
Admission: 15,000 Korean Won (RM53)
Marveling at the beauty of the Hongcheon Gingko Tree Forest
This Gingko Tree Forest is a unique place to visit when you find yourself in Hongcheon. Privately owned by a South Korean man, it's said that he planted all these Gingko trees on his land to help out his wife (who suffered from chronic indigestion) in her healing process. Talk about true love.
It was closed off to the public up until 2010, when the owner finally decided to let visitors in after the place had grown immensely popular through word-of-mouth. The best part is, admission is totally free!
The owner also decided to open his gingko forest in the month of October only. He made this decision so visitors could enjoy the golden Autumn hues of the trees. So thoughtful. :)
Here are the details:
Opening hours: Every October, 10am to 5pm
Address: 686-4, Gwangwon-ri, Nae-myeon, Hongcheon-gun, Gangwon
Admission: Free :D
Day 5 - Gangwon Province, South Korea
Taking a cable car up to Balwangsan Mountain in Pyeongchang
Located in the mountainous Pyeongchang region of Gangwon, the Balwangsan Mountain cable car is Asia's longest, spanning 7.4km long! The journey from start to finish will take about half an hour, and the best part about the ride is the fact that you can play your music via Bluetooth in the cable car itself!
It was really misty that morning, so we didn't really get much of a view. But it was still nice. I honestly thought these life-sized cutouts (above) of Joon-sang and Yoo-jin from the hit K-drama Winter Sonata were real people! If you've never watched Winter Sonata, your mum probably has. No, really. :')
Here are the details:
Opening hours: 9am to 8pm daily
Address: 232-950, 715, Olympic-ro, Daegwanryeong-myeon, Pyeongchang-gun, Gangwon
Admission: 18,000 Won, roundtrip (RM64)
Getting my fair share of street food at Gangneung Jungang Market
We were given special Gangwon-only coupons that resembled real Korean bank notes! But they aren't your run-of-the-mill cash vouchers. You can use it on literally anything in Jungang Market, and if you spent anything less than the value of the voucher, you get REAL cash change. Yaaas, don't mind if I do. ;D
Croquettes are some of the most famous offerings in Jungang Market, coming in a variety of flavours. Being a true, red-hot Malaysian, I opted for the spicy chilli croquette.  These things are hot AF, but seriously good.
Here are the details:
Opening hours: 8:30am to 9pm daily
Address: 21, Geumseong-ro, Gangneung-si, Gangwon
Admission: Free
Off to the famous BTS Bus Stop in Jumunjin Beach, Gangneung
Made famous by BTS' 'You Never Walk Alone' album cover, the BTS Bus Stop is a must-stop (hehe) location when you're in Gangneung. After it grew more popular, the city of Gangneung designated it as an official tourist stop, allowing visitors to take photos at the iconic location. But once you're in Jumunjin Beach, the bus stop shouldn't be the only thing to look at!
The beach itself is a sight to behold, and the small patches of forest beyond the sand make awesome photo spots when the sun is setting, as is evident above. ;)
Here are the details:
Opening hours: 6am to 12am
Address: 210, Jumunbuk-ro, Gangneung-si, Gangwon
Admission: Free
Pretending to be a Goblin without a bride at the Jumunjin Breakwater
We headed to the Jumunjin Breakwater, location of the famous scene in the hit K-Drama Goblin, in which the Goblin met his bride for the first time. Of course, people flock to the breakwater to re-enact that scene, but since I'm just a bride-less Goblin, I stood there awkwardly. :)
Though it can get a little dicey when the waves hit the breakwater, you just gotta use common sense and be careful.
A word of caution, do not sit on the rocks! Though they do make good photo opportunities, they can be quite dangerous due to the strong waves.
Here are the details:
Opening hours: 24/7
Address: 1609, Haean-ro, Gangneung-si, Gangwon
Admission: Free
Day 6 - Gangwon Province, South Korea
Having a delicious breakfast at Anmok Coffee Street
The city of Gangneung is obsessed with coffee. Anmok Coffee Street itself is lined with a ton of coffeeshops, including Longbread Cafe (above), facing Anmok Beach. It's super chill, and the interior of the cafe is designed to let as much light in as possible, evident with the giant circular opening on its front facade.
I had a club sandwich with some coffee. It's honestly the perfect way to start the day, especially with the view of Anmok Beach and the cool, salty sea breeze permeating the air. TAKE ME BACK, PLEASE!!
Here are the details:
Opening hours: 8am to 12am daily
Address: 10, Changhae-ro 14beon-gil, Gangneung, Gangwon
Admission: Free
Pretending to be Korean royalty at the Ojukheon House
The Hanbok is Korea's traditional costume, coming in all the colours of the rainbow. It's got a relatively slim top with a wide bottom, making a sort of bell shape. The Hanboks that we got to wear were pretty special though.
Here are the details:
Opening hours: 9am to 6pm daily, ticketing counter closes at 5pm
Address: 24, Yulgok-ro 3139beon-gil, Gangneung-si, Gangwon
Admission: 3,000 Korean Won (~RM10)
Taking a sea train from Gangneung to Donghae
Similar to the Wolmido Sea Train, this train's tracks straddle the eastern coast, running on a 58km track from Gangneung Station all the way to Samcheok Station. We got off at the third stop, Donghae.
Formerly a bustling fishing town, Donghae now caters more towards domestic and international tourists with its many murals hidden in hillside paths and alleys.
The murals themselves are located in a little enclave called Nongoldamgil, and they tell the story of the town's history as a representative port for pollack and squid. It's a great place to just catch some fresh air, get coffee in one of the many cafes, and take lots of pretty ocean photos.
Here are the details:
Opening hours: 24/7
Address: 2, Nongol 1-gil, Donghae-si, Gangwon
Admission: Free
Day 7 - Gangwon, South Korea
Visiting the Goseong Unification Observatory near the DMZ
On our last full day in Korea, we headed to the Goseong Unification Observatory in Sokcho. The place itself was built by a Korean army unit in 1983 and used as an observation post. Though there are many places observation decks along the border between the two Koreas, the Goseong Observatory is one of the most modern ones, complete with gift shop and a great view of some North Korean mountains.
Here are the details:
Opening hours: 9am to 4:30pm daily
Address: 457, Hyeonnae-myeon, Goseong-gun, Gangwon
Admission: 3,000 Korean Won (~RM10)
Thank you so much AirAsia X for taking us on this amazing trip. I'm definitely going back. :D
Being the most preferred airline connecting to all the places mentioned in this story, AirAsia X flies to Seoul-Incheon Airport twice daily from Kuala Lumpur. Also, air fares start from RM389* one-way for BIG members. Whether you want to fulfil your K-pop dreams or find yourself an oppa, everything's possible with AirAsia X.
*For bookings from now until 1 December 2019, for immediate travel to June 2020.


2 writes to _paths
Microsoft.PowerShell.Commands.Utility (2)
commands\utility\CsvCommands.cs (2)
552
_paths
= value;
577
_paths
= value;
4 references to _paths
Microsoft.PowerShell.Commands.Utility (4)
commands\utility\CsvCommands.cs (4)
547
return
_paths
;
572
return
_paths
;
653
if (
_paths
!= null)
655
foreach (string path in
_paths
)


Everyone should be aware of Firefox browser which is considered as one of the most safest browser in this world. From April 29th 2014 till May 1st 2014 or even after this the launch of new version of the Firefox is the most trending thing in the tech world. What are there in this launch, there are really a large number of things to notice. After the launch there are survey which are made and the results are very interesting.
|
| Firefox 29 Australis |
The current version of Firefox is 29 and the name given for this is Australis. I am very happy the Firefox updated automatically this morning. It didnt take much time it was really fast when compared to other version I tried to update.
|
| Home page |
Lets start with the GUI (Graphical user interface) looks very familiar to many user. At the first sight the tabs will look like Google Chrome. But as you see in deep you can see there are different in the tabs where it is having more curve compared to Chrome. Then in this version the bookmark button in on the right end of tool bar, next to that is the show bookmarks button. Followed by them are download button and home page. After that is the setting button. Really it is very easy for navigation.
|
| Firefox Customization |
The next big thing we can see is the customization. Before this we might have never seen such an option in browser. Really it is cool feature than any other existing browser. We can drag and drop the required things for quick access. Whenever we want the default things we can just click Restore Default button and can change ourselves.
|
| Sync in Mozilla |
The next major thing is to use the Sync option where we can store our bookmarks in online and access it in another system. It is really a great feature who use multiple devices for accessing web.
|
| Mozilla Developer screen |
Then the navigation for developer tools is nice. The user interaction with the browser is improved very well. It can be said as one of the milestone for Mozilla Firefox browser which will attract many people toward it for using the safe browser.
There was a survey regarding why people use firefox browser all over the world after the launch of 24 hours. The results were cool.
|
| Firefox 29 survey |
This launch is surely a best treat to everyone in this world who support the web for good cause. We can surely think the best browser is safe, fast, reliable and more exciting to use.


--- layout: post status: publish published: true title: Baker vs. Piniella author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>excerpt: 'I was prompted by Manstrength''s weak defending of Dusty Baker to look at some stats that I think are are indicative of a much more well-rounded team under Piniella than what the Cubs were under Baker. Yes, we are only 19 games into this season, and that must be taken into account. However, 19 games is a significant chunk and I can only believe the current trends will continue. I focused on a few stats that I had mentioned in my response to Manstrength''s post. ' wordpress_id: 32 wordpress_url: http://ivyenvy.wordpress.com/?p=32 date: '2008-04-22 18:22:14 +0000' date_gmt: '2008-04-22 18:22:14 +0000' categories: - Management - Offense tags: - Dusty Baker - Fukudome - Lou Piniella - Mets - On-base percentage - Pitches per Plate Appearance - Run Production - Walks comments: - id: 12 author: manstrength author_email<EMAIL_ADDRESS>author_url: '' date: '2008-04-23 22:13:45 +0000' date_gmt: '2008-04-23 22:13:45 +0000' content: The sweet thing about having a blog, and an opinion.. is that you can have whatever opinion you want. Fact of the matter is.. regardless of how shitty the team played defensively or how poor of discipline they had at the plate, the Cubs still managed to have back to back winning seasons for the first time since 1972. - id: 13 author: thegreatgeno author_email<EMAIL_ADDRESS>author_url: http:// date: '2008-04-24 05:14:44 +0000' date_gmt: '2008-04-24 05:14:44 +0000' content: |- Good point, manstrength. He took a team practically anybody could win with and won more games than he lost half the seasons he was there. That's the definition of success for anybody. Which is why he couldn't get a job the year after he was fired and then when he did get one it was with the crappy Cincinnati Reds and the guy who hired him was fired twenty games into the season. But hey, blowing the wild card in 2004 was pretty freakin' sweet. ---
I was prompted by Manstrength's weak defending of Dusty Baker to look at some stats that I think are are indicative of a much more well-rounded team under Piniella than what the Cubs were under Baker. Yes, we are only 19 games into this season, and that must be taken into account. However, 19 games is a significant chunk and I can only believe the current trends will continue. I focused on a few stats that I had mentioned in my response to Manstrength's post.
* On Base Percentage:
2006 (Baker) - .314 (2nd to last in MLB)
2008 (Piniella) - .364 (2nd in MLB)
* Walks
2006 (Baker) - 395 / 2.4 walks per game (Last in MLB)
2008 (Piniella) - 83 / 4.3 walks per game (6th in MLB)
Now, both of these statistics directly relate to run production:
2006 (Baker) - 716 / 4.4 runs per game (3rd to last in MLB)
2008 (Piniella) - 118 / 6.2 runs per game (2nd in MLB)
I have tried locating the statistics for Pitches Per Plate Appearance, but I am having a hard time finding that. If I'm not mistaken, the Cubs are currently seeing about 4 pitches per plate appearance. I think, although I'm not sure, that under Baker, the Cubs saw about 2.5 pitches per plate appearance. Currently, Fukudome is leading the majors in pitches per plate appearance. Look at the 10 pitch at-bat he had in last night's game against the Mets. The patience of this team at the plate is so refreshing. They have the ability to generate runs and they don't simply rely on the long-ball.
Throw out statistics if you want. Just watch the games. It's a great thing to see these guys playing with patience and confidence. They have good fundamentals. This team looks like other teams I've been jealous of as they defeated the Cubs. This team looks good.


Comments
-
Greg Hurrell
Can't reproduce locally, either connecting via nginx or directly to the mongrel instance.
-
Greg Hurrell
Ditto for Unicorn, locally.
-
Greg Hurrell
As a temporary workaround I've changed the default_type in my nginx config from:
default_type application/octet-stream;
To:
default_type text/html;
And it is indeed now serving the front page with that type, thus fixing the breakage in Firefox.
Now, this shouldn't be necessary, as Rails should be setting the content type for all requests. Indeed, it is setting it for other extensionless requests (eg. https://wincent.com/blog).
What is not clear to me is why I can't reproduce the fault locally. In my local setup nginx also has the
default_type application/octet-stream
setting, which is the default in all sample nginx configs I've ever seen, and it still serves the root of the site using the correct text/html type. -
Greg Hurrell
Another observation:
-
https://wincent.com/
is supposed to show
products#index
but was failing due to the MIME type thing - https://wincent.com/products worked fine
-
there is an
index.html
file on the disk created via page caching (ie. inpublic/index.html
) so Rails wasn't even been hit for those dud requests -
there is also a
products.html
file on the disk created via page caching (ie. atpublic/products.html
); to be honest I am not even sure what is responsible for creating the previously mentionedindex.html
file -
there is not a page-cached file at
public/products/index.html
(although there are cached pages for theproducts#show
action; eg.public/products/synergy.html
and so on) -
a request for the site root via Safari shows up in the
logs like this:
[ip] - - [28/Nov/2010:06:04:06 -0500] "GET / HTTP/1.1" 200 3415 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; es-es) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" "-"
-
https://wincent.com/
is supposed to show
-
Greg Hurrell
Local testing in production mode (connecting directly to Unicorn):
-
public/index.html
gets created on first request to/
-
public/products.html
gets created on first request to/products
Connecting to nginx:
- mongrel gets hit every time, as in local configuration nginx isn't checking the cache files (even though I would expect it to); seems like there is a bug in the local configuration
-
-
Greg Hurrell
One thing I've noticed in testing:
$ curl -I https://wincent.com
Returns the right headers but:
$ curl -i https://wincent.com
does not.
More detail (
-v
switch to show sent headers as well):$ curl -i -v https://wincent.com * About to connect() to wincent.com port 443 (#0) * Trying <IP_ADDRESS>... connected * Connected to wincent.com (<IP_ADDRESS>) port 443 (#0) * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, CERT (11): * SSLv3, TLS handshake, Server key exchange (12): * SSLv3, TLS handshake, Server finished (14): * SSLv3, TLS handshake, Client key exchange (16): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSL connection using DHE-RSA-AES256-SHA * Server certificate: * subject: serialNumber=nVTtmHtVQS7Jq8FQvIxPDYgOFIdOCRZb; C=AU; O=wincent.com; OU=GT09983718; OU=See www.rapidssl.com/resources/cps (c)10; OU=Domain Control Validated - RapidSSL(R); CN=wincent.com * start date: 2010-01-08 22:12:10 GMT * expire date: 2015-02-09 00:39:03 GMT * common name: wincent.com (matched) * issuer: C=US; O=Equifax; OU=Equifax Secure Certificate Authority * SSL certificate verify ok. > GET / HTTP/1.1 > User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3 > Host: wincent.com > Accept: */* > < HTTP/1.1 200 OK HTTP/1.1 200 OK < Server: nginx/0.7.67 Server: nginx/0.7.67 < Date: Sun, 28 Nov 2010 13:45:01 GMT Date: Sun, 28 Nov 2010 13:45:01 GMT < Content-Type: application/octet-stream Content-Type: application/octet-stream < Content-Length: 9770 Content-Length: 9770 < Last-Modified: Sun, 21 Nov 2010 18:19:43 GMT Last-Modified: Sun, 21 Nov 2010 18:19:43 GMT < Connection: keep-alive Connection: keep-alive < Accept-Ranges: bytes Accept-Ranges: bytes
And:
$ curl -I -v https://wincent.com * About to connect() to wincent.com port 443 (#0) * Trying <IP_ADDRESS>... connected * Connected to wincent.com (<IP_ADDRESS>) port 443 (#0) * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, CERT (11): * SSLv3, TLS handshake, Server key exchange (12): * SSLv3, TLS handshake, Server finished (14): * SSLv3, TLS handshake, Client key exchange (16): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSL connection using DHE-RSA-AES256-SHA * Server certificate: * subject: serialNumber=nVTtmHtVQS7Jq8FQvIxPDYgOFIdOCRZb; C=AU; O=wincent.com; OU=GT09983718; OU=See www.rapidssl.com/resources/cps (c)10; OU=Domain Control Validated - RapidSSL(R); CN=wincent.com * start date: 2010-01-08 22:12:10 GMT * expire date: 2015-02-09 00:39:03 GMT * common name: wincent.com (matched) * issuer: C=US; O=Equifax; OU=Equifax Secure Certificate Authority * SSL certificate verify ok. > HEAD / HTTP/1.1 > User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3 > Host: wincent.com > Accept: */* > < HTTP/1.1 200 OK HTTP/1.1 200 OK < Server: nginx/0.7.67 Server: nginx/0.7.67 < Date: Sun, 28 Nov 2010 13:46:03 GMT Date: Sun, 28 Nov 2010 13:46:03 GMT < Content-Type: text/html; charset=utf-8 Content-Type: text/html; charset=utf-8 < Connection: keep-alive Connection: keep-alive < Status: 200 OK Status: 200 OK < ETag: "9d7b98c51ced2c758d6057750674df1b" ETag: "9d7b98c51ced2c758d6057750674df1b" < X-UA-Compatible: IE=Edge,chrome=1 X-UA-Compatible: IE=Edge,chrome=1 < X-Runtime: 0.064133 X-Runtime: 0.064133 < Set-Cookie: user_id=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT Set-Cookie: user_id=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT < Set-Cookie: session_key=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT Set-Cookie: session_key=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT < Cache-Control: max-age=0, private, must-revalidate Cache-Control: max-age=0, private, must-revalidate < * Connection #0 to host wincent.com left intact * Closing connection #0 * SSLv3, TLS alert, Client hello (1):
-
Greg Hurrell
Ok, I've finally gotten to the bottom of the issue and I believe it is now fixed definitively.
I believe the problem most likely dates back to when I added support for a "dual" web root:
-
public
corresponding to the standard public directory in a Rails application -
static
for uploading certain generated, static documentation that should persist across deployments of different versions
This allows me to have URLs like:
- https://wincent.com/products/wikitext: on the first request, this hits the Rails application and dynamically generates the page, which is later cached to disk
- https://wincent.com/products/wikitext.html: subsequent requests just use this cached version
-
https://wincent.com/products/wikitext/doc: static uploaded documentation (generated by YARD), and
stored on the disk under
static
, notpublic
, so that it will be preserved across deployments
I believe that somewhere along the way in the implementation of this feature, serving up
index.html
when https://wincent.com (or https://wincent.com/) is requested was broken. I still don't know exactly why, but I do not what fixed it: explicitly adding in handling ofindex.html
files:set $index_filename 'index.html'; if (-f $request_filename$index_filename) { # URI has trailing slash rewrite (.*) $1$index_filename break; } if (-f $request_filename/index.html) { # URI has no trailing slash rewrite (.*) $1/ permanent; }
Note that using nginx's built-in
index
directive (ie.index index.html
) did not work, probably due to the complication relation among the different location blocks and rewrite rules. The whole section now looks like this (with tweaks to make sure that only GET posts are affected):# rewrite all requests to rails.wincent.com back to wincent.com if ($host != wincent.com) { rewrite ^(.*) https://wincent.com$1 permanent; } # serve static content without hitting Rails # this also bypasses our maintenance page check location ~ /(images|javascripts|stylesheets)/ { expires 72h; } location /system/maintenance.html { # always allow access to this file; explained here: # http://www.ruby-forum.com/topic/141251 } location / { if (-f $document_root/system/maintenance.html) { error_page 503 /system/maintenance.html; return 503; } # cached pages: only for GET requests set $cache_extension ''; if ($request_method = GET) { set $cache_extension '.html'; } if (-f $request_filename) { break; } set $index_filename 'index'; if (-f $request_filename$index_filename$cache_extension) { # URI has trailing slash rewrite (.*) $1$index_filename$cache_extension break; } if (-f $request_filename/$index_filename$cache_extension) { # URI has no trailing slash rewrite (.*) $1/ permanent; } if (-f $request_filename$cache_extension) { rewrite (.*) $1.html break; } if (-f $static_root$uri) { root $static_root; break; } if (-f $static_root${uri}index.html) { # URI has trailing slash root $static_root; rewrite (.*) $1$index_filename break; } if (-f $static_root$uri/index.html) { # URI has no trailing slash rewrite (.*) $1/ permanent; } proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X_FORWARDED_PROTO https; proxy_max_temp_file_size 0; if (!-f $request_filename) { proxy_pass http://unicorn; break; } }
They say that Apache rewrite rules can be tricky, but for me the way nginx rewriting works is actually a lot more opaque; see the IfIsEvil page on the nginx wiki]:
Directive "if" is part of rewrite module which evaluates instructions imperatively. On the other hand, nginx configuration in general is declarative. At some point due to users demand an attempt was made to enable some non-rewrite directives inside "if", and this lead to situation we have now
-
-
Greg Hurrell
Status changed:
- From: new
- To: closed
Add a comment
Comments are now closed for this issue.


Struct Line
Represents the start and end Point of a line.
Inherited Members
Namespace: GameOverlay.Drawing
Assembly: GameOverlay.dll
Syntax
public struct Line
Constructors
| Improve this Doc View SourceLine(Point, Point)
Initializes a new Line using the given points.
Declaration
public Line(Point start, Point end)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | start | A Point structure including the start coordinates of the line. |
| Point | end | A Point structure including the end coordinates of the line. |
Line(Int32, Int32, Int32, Int32)
Initializes a new Line using the given points.
Declaration
public Line(int startX, int startY, int endX, int endY)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | startX | The x-coordinate of the start point of the line. |
| Int32 | startY | The y-coordinate of the start point of the line. |
| Int32 | endX | The x-coordinate of the end point of the line. |
| Int32 | endY | The y-coordinate of the end point of the line. |
Line(Single, Single, Single, Single)
Initializes a new Line using the given points.
Declaration
public Line(float startX, float startY, float endX, float endY)
Parameters
| Type | Name | Description |
|---|---|---|
| Single | startX | The x-coordinate of the start point of the line. |
| Single | startY | The y-coordinate of the start point of the line. |
| Single | endX | The x-coordinate of the end point of the line. |
| Single | endY | The y-coordinate of the end point of the line. |
Fields
| Improve this Doc View SourceEnd
The ending Point of this Line.
Declaration
public Point End
Field Value
| Type | Description |
|---|---|
| Point |
Start
The staring Point of this Line.
Declaration
public Point Start
Field Value
| Type | Description |
|---|---|
| Point |
Methods
| Improve this Doc View SourceEquals(Object)
Returns a value indicating whether this instance and a specified Object represent the same type and value.
Declaration
public override bool Equals(object obj)
Parameters
| Type | Name | Description |
|---|---|---|
| Object | obj | The object to compare with this instance. |
Returns
| Type | Description |
|---|---|
| Boolean | true if |
Overrides
| Improve this Doc View SourceGetHashCode()
Returns the hash code for this instance.
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| Int32 | A 32-bit signed integer hash code. |
Overrides
| Improve this Doc View SourceToString()
Converts the Line structure to a human-readable string.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| String | A string representation of this Line. |
Overrides
Operators
| Improve this Doc View SourceEquality(Line, Line)
Determines whether two specified instances are equal.
Declaration
public static bool operator ==(Line left, Line right)
Parameters
| Type | Name | Description |
|---|---|---|
| Line | left | The first object to compare. |
| Line | right | The second object to compare. |
Returns
| Type | Description |
|---|---|
| Boolean | true if |
Inequality(Line, Line)
Determines whether two specified instances are not equal.
Declaration
public static bool operator !=(Line left, Line right)
Parameters
| Type | Name | Description |
|---|---|---|
| Line | left | The first object to compare. |
| Line | right | The second object to compare. |
Returns
| Type | Description |
|---|---|
| Boolean | true if |


I might not have been in the right mindset for this experience, nor the right setting. I had just spent the last night on caffeine, ginger root, and 150 mgs of phenylpropanolamine. Needless to say I was kind of depressed, tired, and ready for something to come over and take the edge off of the day. As soon as I awoke I was yelled at and reminded of all the laundry I had to complete from a previous campout the week before.
T 0= I dose four 2.5 milligrams of olanzapine.
t 0:45= I start to feel something different, deffinitely mellow. I feel relaxed and am kind of moving like I am confused, and I must admit that to a certain extent, I am.
t 1:15= I go to the launderomat and put in the clothes and a sleeping bag, sit down to wait, realize that I still need to pick up some squash so I walk down to the grocery store.
t 1:20= My hands are shaking, it is allot harder to focus on objects, I am confused about where to find the proper things in the store, I eventually buy the wrong things and break a deuce into 10 bucks so I can get more change at the laundromat.
t 1:35= My mouth is dry, I keep lying down to sleep and closing my eyes is very pleasurable, it is hot as hell in this goddamn place and I get up to get some horchata from a nearby restaurant.
t 1:40= I stand up and feel faint, I get up to walk and outside on the sidewalk I am forced to sit because my vision has gone fuzzy and black. I feel like I am going to faint and I try to puke, but don't want to stick my hand down my throat in front of people.
t 2:00= I walked past the restaurant into the alley behind, I find a space of shade, lie myself down and try to puke, I cannot. I lie down for about ten minutes, get up slowly and stay in the shade for about another two minutes. Start walking back to the restaurant.
t 2:20= I walked into the restaurant, I feel as if I am as white as a sheet and am sweating profusely. I lye down on a bench and eventually get what strength I can to help me up and order a drink. My mouth is dry, my eyes are blurry, I feel as if I am going to faint, and I am having tremors in my feet and hands.
t 3:00= I spent the last space of time trying to sleep, to no avail. This feels like a delerient, but without the plus'.
3:30= Finished laundery, spent the rest of the day sipping water and trying to stay cool. Maybe this triggered heat stroke, but when I checked my temp it was around 97. I cannot keep my eyes open, I go from periods of trying to keep my eyes open to sleeping for ten minutes. I cannot stay awake for more than 5 minutes at most.
t5:0 Feeling a little better, I think I am coming down.
t 6:00= Deffinetly feeling a little better, stopped shaking so much, am not slurring my words so much, still REALLY tired though and deffinetly dissapointed that I could not spend this period of time thinking about how stupid I was to try this and how I should be more careful.
Overview: this is deffinetly psychoactive, but might be more enjoyable at a lower dose and a better setting.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Before Change
k, persistent, persist_from, learning_rate, momentum, l1, l2,
method, seed, log_every, plot):
Train an RBM
train_set = np.loadtxt(train_path)
target_psi = np.loadtxt(target_path)
num_hidden = train_set.shape[-1] if num_hidden is None else num_hidden
After Change
Train an RBM
// train_set = np.loadtxt(train_path)
// target_psi = np.loadtxt(target_path) if target_path is not None else None
with gzip.open(train_path) as f:
train_set = pickle.load(f, encoding="bytes")
num_hidden = train_set.shape[-1] if num_hidden is None else num_hidden
rbm = RBM(num_visible=train_set.shape[-1],
num_hidden=num_hidden,


Game URL
No spins yet...
Play speed
Normal, human-like
A little bit faster
Really fast
As fast, as possible
Stop on freespins
Stop on bonus
Stop on win
Bet size
Play currency
Start play, to see stats


Exercício 03
Time Table
Hours
Mon
True
Wed
Thu
Fri
Science
Maths
Science
Maths
Arts
Social
History
English
Social
Sports
Lunch
Science
Maths
Science
Maths
Project
Social
History
English
Social


HDL proteins OpenUrl protein CrossRef efflux levels sterol strains ABCA associated using Figure Table genetic cholesterol total proteome Science gene Web correlation Abstract FREE Supplemental Text HDL-C APOA analysis normalized proteins, specific cells plasma Download significant size used APOC QTLs capacity correlated data distribution high identified new pQTL Lusis, association correlations metrics mouse particle respectively. A.J. Open data-hide-link-title=""> data-icon-position="" figure lipid negative studies tab SNPs View analyses functional inbred suggesting unstimulated, upregulated variation yeast BHK Bennett SAA, SNP composition locations medium mice network performed strains. HMDP Research Wang, biological effect identify interactions regulation represented APOA, Apolipoprotein Engl. Genetic HL, J.W. Lipid Lipoprotein Loci Med. Pamir Vaisar cell clustering eQTL expression likely lipoprotein local low mass normalization presented proteins. results (Supplemental ./NEJMoa. B.J. D.J. Genet. Heinecke, P.S. Pan, QTL abundance cardiovascular clinical common core correlation. different efflux, functions heritability human immune present stimulated strongly visualization Association Bennett, Gargalovic, Kirchgessner, Mouse R.C. Rader, Supplementary Vaisar, based cluster clustered control correction function high-density highly insulin large multiple number particles peptides role serum small traits variants APOC, Apoa Bonferroni-Holm C.R. Clinical Efflux Eskin, HDL. J.C. L.W. M.J. PSM PSMs Plasma S.T. accommodate according al, analysis. approach available cellular complex concentration curated delta.BHK delta.J determinants determined directly distal distinct effects factors ion isolated loci locus measured mice. min.MF, min.cAMP, peak plus.MF, plus.cAMP, positive protection protein-protein spectra structure study systems trait values (r=., A.R. Barter, Castellani, Cholesterol Circulation DAVID, Farber, H-Q H-Q, HDL-cholesterol Heart However, Hui, Human J.A. J.D. KEGG, MS/MS Nat. Orozco, P.J. Pamir, Parks, R.B. Rau, S.M. Total Vascular adipose algorithm calculated certain coronary dependent differences example, expected genes heatmap hepatic heterogeneity inflammatory innate mobility negatively panel patients patterns pearson previous properties protein, provide quantitative regulated regulating relationship removed represent response revealed samples shown significantly size. sizes strong structural tissue >;. <; (chr. (dark (positive (red) ./jlr.M. A-I Arteriosclerosis, B), B.W. Benjamini-Hochberg Biology Blue: C.D. CAD Cell Chem. Civelek, Davidson, Drake, Euclidean Ghazalpour, Gordon Gordon, H]cholesterol Hegele, High High-Density High-density Hutchins, Hybrid Investigators Kang, Kostem, Li, Logarithmic Metabolism Mice Neuhaus, Node Norheim, P.M. P=.; Panther, Pearson Protein Proteins Proteome R.A. R.S. Red: S.L. Self-loops Shorter Smith, T.A. Thrombosis, Uniprot White abundances abundant apolipoprotein assigned bleu, blue). bundled captured chromosome cis clarity. collected complement consistent containing corrected correlation, databases define density detected disease disease. distances edge edge-weighted edges exhibited explained findings form formed formic genetics greater groups having histocompatibility identification important include including indicate inline l.hdl.size layout level levels, linkage lipoproteins log m.hdl.size mapped mapping matrix. mediating metabolism metrics: mice, model moderate observed. p-value, participate peptide population popup profiles proportional proteomic r=., rare recently red) regulatory relative representative represented. respectively roles search shared showing species spring-embedded squares stored strain. stronger subspecies table: trans transformation transparency types unique value. values. variation, |r|


OpenCL notes_1 host programming
1. Host programming
My working device is Nvidia 1060 GPU, and I use CUDA v9.0. The test environment is Visual Studio 2017. Before starting talking about host programming, we need to congifure the development environment.
Need to add three components:
(1) include path: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
(2) OpenCL.lib
: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib
(3) OpenCL.dll
: C:\Program Files\NVIDIA Corporation\OpenCL
1.1 Primitive types
\\CL\cl_platform.h
/* scalar types */
typedef signed __int8 cl_char;
typedef unsigned __int8 cl_uchar;
typedef signed __int16 cl_short;
typedef unsigned __int16 cl_ushort;
typedef signed __int32 cl_int;
typedef unsigned __int32 cl_uint;
typedef signed __int64 cl_long;
typedef unsigned __int64 cl_ulong;
typedef unsigned __int16 cl_half;
typedef float cl_float;
typedef double cl_double;
Once you begin writing OpenCL code, the first thing is to initialize cl_platform_id
data structure. Each cl_platform_id
represents an OpenCL platform on the host. If you have one NVIDIA GPU and one AMD GPU, then you install two separate SDKs, then, you will get two different cl_platform_id
. Reading the source code, this structure is only a 8-bytes pointer(x64).
\\CL\cl.h
typedef struct _cl_platform_id * cl_platform_id;
typedef struct _cl_device_id * cl_device_id;
typedef struct _cl_context * cl_context;
typedef struct _cl_command_queue * cl_command_queue;
2 Find Host
To initialize this structure, you need to call cl_int clGetPlatformIDs(cl_unit, num_entries, cl_platform_id* platform, cl_uint* num_platforms)
If return value is negative, this function fails.
num_entries
is the maximum number of cl_platform_id
which will be placed in platform
array.
One good practice:
cl_platform_id* platforms;
cl_uint num_platforms;
clGetPlatformIDs(5, NULL, &num_platforms);
platforms = (cl_platform_id*) malloc(sizeof(cl_platform_id) * num_platforms);
clGetPlatformIDs(5, platforms, &num_platforms);
To get platform information, call
extern CL_API_ENTRY cl_int CL_API_CALL
clGetPlatformInfo(cl_platform_id /* platform */,
cl_platform_info /* param_name */,
size_t /* param_value_size */,
void * /* param_value */,
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
char pform_vendor[40];
clGetPlatformInfo(platforms[0], CL_PLATFORM_VENDOR, sizeof(pform_vendor), &pform_vendor, NULL);
3. Find devices
/* Device APIs */
extern CL_API_ENTRY cl_int CL_API_CALL
clGetDeviceIDs(cl_platform_id /* platform */,
cl_device_type /* device_type */,
cl_uint /* num_entries */,
cl_device_id * /* devices */,
cl_uint * /* num_devices */) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clGetDeviceInfo(cl_device_id /* device */,
cl_device_info /* param_name */,
size_t /* param_value_size */,
void * /* param_value */,
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
4. Device Management
In OpenCL, a context identifies a set of devices through command queue.
cl_context clCreateContext(const cl_context_properties* properties, cl_unit num_devices, const cl_device_id* devices,
(void CL_CALLBACK* notify_func)(...), void* user_data, cl_int* error);
cl_context clCreateContextFromType(const cl_context_properties* properties, cl_device_type device_type,
(void CL_CALLBACK *notify_func)(...), void* user_data, cl_int* error);
The user_data
is accessed by the callback function when an error occurs.
clGetContextInfo(cl_context context, cl_context_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret)
5. Storing Device Code in Programs
A kernel represents a single function to be executed on a device. In OpenCL, a program is represented by a cl_program
data structure.
OpenCL provides two functions to create new programs:
clCreateProgramWithSource
and clCreateProgramWithBinary
.
clCreateProgramWithSource
function expects the buffer contain code in text form.
extern CL_API_ENTRY cl_program CL_API_CALL
clCreateProgramWithSource(cl_context /* context */,
cl_uint /* count */,
const char ** /* strings */,
const size_t * /* lengths */,
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_program CL_API_CALL
clCreateProgramWithBinary(cl_context /* context */,
cl_uint /* num_devices */,
const cl_device_id * /* device_list */,
const size_t * /* lengths */,
const unsigned char ** /* binaries */,
cl_int * /* binary_status */,
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
To create a program from multiple text files, the content of each file must be placed in an array of strings(char**
). The src_num
parameter tells the function how many strings to expect, the src_sizes
identifies the size of each string.
You can create one separate text file (*.cl
).
program_handle = fopen("kernel.cl", "r");
fseek(program_handle, 0, SEEK_END);
program_size = ftell(program_handle);
rewind(program_handle);
program_buffer = (char*)malloc(program_size + 1);
program_buffer[program_size] = '\0';
fread(program_buffer, sizeof(char), program_size, program_handle);
program = clCreateProgramWithSource(context, 1, (const char**)program_buffer, program_size, &err);
6. Compile
Every compiler must be accessible through clBuildProgram
. This function compiles and links a cl_program
for devices associated with the platform.
extern CL_API_ENTRY cl_int CL_API_CALL
clBuildProgram(cl_program /* program */,
cl_uint /* num_devices */,
const cl_device_id * /* device_list */,
const char * /* options */,
void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */),
void * /* user_data */) CL_API_SUFFIX__VERSION_1_0;
const char options[] = "-cl-std=CL1.1 -cl-mad-enable -Werror";
clBuildProgram(program, 1, &device, options, NULL, NULL);
/* Access the first GPU/CPU */
err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device, NULL);
if(err == CL_DEVICE_NOT_FOUND) {
err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_CPU, 1, &device, NULL);
}
if(err < 0) {
perror("Couldn't find any devices");
exit(1);
}
/* Create a context */
context = clCreateContext(NULL, 1, &device, NULL, NULL, &err);
if(err < 0) {
perror("Couldn't create a context");
exit(1);
}
/* Read each program file and place content into buffer array */
for(i=0; i<NUM_FILES; i++) {
program_handle = fopen(file_name[i], "r");
if(program_handle == NULL) {
perror("Couldn't find the program file");
exit(1);
}
fseek(program_handle, 0, SEEK_END);
program_size[i] = ftell(program_handle);
rewind(program_handle);
program_buffer[i] = (char*)malloc(program_size[i]+1);
program_buffer[i][program_size[i]] = '\0';
fread(program_buffer[i], sizeof(char), program_size[i],
program_handle);
fclose(program_handle);
}
/* Create a program containing all program content */
program = clCreateProgramWithSource(context, NUM_FILES,
(const char**)program_buffer, program_size, &err);
if(err < 0) {
perror("Couldn't create the program");
exit(1);
}
/* Build program */
err = clBuildProgram(program, 1, &device, options, NULL, NULL);
if(err < 0) {
/* Find size of log and print to std output */
clGetProgramBuildInfo(program, device, CL_PROGRAM_BUILD_LOG,
0, NULL, &log_size);
program_log = (char*) malloc(log_size+1);
program_log[log_size] = '\0';
clGetProgramBuildInfo(program, device, CL_PROGRAM_BUILD_LOG,
log_size+1, program_log, NULL);
printf("%s\n", program_log);
free(program_log);
exit(1);
}
/* Deallocate resources */
for(i=0; i<NUM_FILES; i++) {
free(program_buffer[i]);
}
7. Kernel
kernels are deployable structure. They can be packed to a command queue and send to a device. cl_kernel
clCreateKernelsInProgram(cl_program program, cl_uint num_kernels, cl_kernel* kernels, cl_uint* num_kernels_ret);
If you'd rather create a single kernel, you can use the clCreateKernel
function. This function requires that you know the name of the function from which the kernel is to be created.
clCreateKernel(cl_program program, const char* kernel_name, cl_int* error);
Once you've created a cl_kernel
, you may want to know which function it represents and which program it belongs to.
clGetKernelInfo(cl_kernel kernel, cl_kernel_info para_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret);
8. Command queue
When you create a kernel, you don't have to identify a target device – it can be sent to any device in the context. Instead, you identify the target device when you create a command queue. Then when you deploy kernels to the queue, they will be sent to the device assocaited with the queue.
A command is a message sent from the host that tells a device to perform an operation. Besides kernel execution, many OpenCL command operations involve data transfer: reading from the device to the host, writing data from the host to the device.
By default, command queues process commands in the order in which they're received, but you can change this defualt.
cl_command_queue
clCreateCommandQueue(cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int *err).
This returns a cl_command_queue
whose reference count can be incremented with clRetainCommandQueue
and decremented with clReleaseCommandQueue
.
clEnqueueTask(cl_command_queue queue, cl_kernel kernel, cl_uint num_events, const cl_event* wait_list, cl_event* event)


Back
Shawn Cramp
Home
My name is Shawn Cramp, and I'm a third year Computer Science student at Laurier.


Bridge Namespace
Properties:
| Name | Type | Description |
|---|---|---|
directions |
object | The compass directions |
directionOrder |
array | directions in order they should be presented |
suits |
object | The suits of cards |
suitOrder |
array | The suits in order of priority |
ranks |
object | The ranks of cards |
rankOrder |
array | The ranks in order of priority |
vulnerabilities |
object | The list of possible vulnerabilities |
- Source:
Classes
Members
(static) options
Configuration options object.
Use this to store all options you might use to configure stuff.
- Source:
Methods
(static) _checkBid(bid, contextopt)
Check to see if bid is valid
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
bid |
string | the bid as single character or 2 characters | |
context |
string |
<optional> |
The context ( for example the method ) of this call |
- Source:
Throws:
bid is not a valid bid
(static) _checkCall(call, contextopt)
Check to see if suit of a call is a valid
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
call |
string | The call to check | |
context |
string |
<optional> |
The context ( for example the method ) of this call |
- Source:
Throws:
suit is not a valid call
(static) _checkDirection(direction, contextopt)
Check to see if direction is a valid direction
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
direction |
string | The direction to check | |
context |
string |
<optional> |
The context ( for example the method ) of this call |
- Source:
Throws:
direction is not a valid direction
(static) _checkLevel(level, contextopt)
Check to see if level of a call is valid
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
level |
string | The level to check | |
context |
string |
<optional> |
The context ( for example the method ) of this call |
- Source:
Throws:
level is not a valid level
(static) _checkRank(rank, contextopt)
Check to see if rank is a valid rank
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
rank |
string | The rank to check | |
context |
string |
<optional> |
The context ( for example the method ) of this call |
- Source:
Throws:
rank is not a valid rank
(static) _checkSuit(suit, contextopt)
Check to see if suit is a valid suit
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
suit |
string | The suit to check | |
context |
string |
<optional> |
The context ( for example the method ) of this call |
- Source:
Throws:
suit is not a valid suit
(static) _checkVulnerability(vulnerability, contextopt)
Check to see if vulnerability is a valid vulnerability
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
vulnerability |
string | The vulnerability to check | |
context |
string |
<optional> |
The context ( for example the method ) of this call |
- Source:
Throws:
vulnerability is not a valid vulnerability
(static) _getParameters(text, delimiter1, delimiter2) → {object}
Parse the string and return as an associative array of parameters based on specified delimiters
Parameters:
| Name | Type | Description |
|---|---|---|
text |
string | the text containing parameter values |
delimiter1 |
string | the delimiter separating parameters |
delimiter2 |
string | the delimiter separating parameter from value |
- Source:
Returns:
an associative array of parameter values
- Type
- object
(static) _parseContainedText(the, the, the)
Parse string to get text between delimiters.
Parameters:
| Name | Type | Description |
|---|---|---|
the |
string | text string to parse |
the |
number | position of starting delimiter |
the |
string | ending delimiter |
- Source:
Returns:
associative array with contained text and position after ending delimiter
(static) _parseParameterValues(text, delimiter1, delimiter2) → {object}
Parse a string with parameter value entries separated by delimiters
into an associative array.
Parameters:
| Name | Type | Description |
|---|---|---|
text |
string | the text containing parameter values |
delimiter1 |
string | the delimiter separating parameters |
delimiter2 |
string | the delimiter separating parameter from value |
- Source:
Returns:
an associative array of parameter value pairs
- Type
- object
(static) _reportError(message, contextopt)
What to do when an error is seen?
Default if to throw an exception.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
message |
string | The error message | |
context |
string |
<optional> |
The context ( for example the method ) of the Error |
- Source:
Throws:
Error with message context + message
(static) areOpponents(direction1, direction2)
Check if two directions are opponents.
No check is performed since it is assumed caller will check this is a valid direction.
Parameters:
| Name | Type | Description |
|---|---|---|
direction1 |
string | the first direction |
direction2 |
string | the second direction |
- Source:
Returns:
true if direction1 and direction2 are opponents, false otherwise
(static) arePartners(direction1, direction2)
Check if two directions are partners.
No check is performed since it is assumed caller will check this is a valid direction.
Parameters:
| Name | Type | Description |
|---|---|---|
direction1 |
string | the first direction |
direction2 |
string | the second direction |
- Source:
Returns:
true if direction1 and direction2 are opponents, false otherwise
(static) assignDefault(variable, value)
Assign a default value to variable if it is not defined.
Parameters:
| Name | Type | Description |
|---|---|---|
variable |
mixed | the variable to check |
value |
mixed | the default value to assign |
- Source:
Returns:
the variable value if assigned else the default value
(static) getHash(delimiter) → {object}
Parse the hash in the url and return as an associative array of paramters.
Parameters:
| Name | Type | Description |
|---|---|---|
delimiter |
string | any delimiter that should be stripped |
- Source:
Returns:
an associative array of parameter values
- Type
- object
(static) getLHO(direction) → {string}
Get the LHO of the specified direction.
No check is performed since it is assumed caller will check this is a valid direction.
Parameters:
| Name | Type | Description |
|---|---|---|
direction |
string | the direction whose LHO is needed. |
- Source:
Returns:
the lho of specified direction
- Type
- string
(static) getPartner(direction) → {string}
Get the partner of the specified direction.
No check is performed since it is assumed caller will check this is a valid direction.
Parameters:
| Name | Type | Description |
|---|---|---|
direction |
string | the direction whose LHO is needed. |
- Source:
Returns:
the lho of specified direction
- Type
- string
(static) getQuery(delimiter) → {object}
Parse the query string in the url and return as an associative array of paramters.
Parameters:
| Name | Type | Description |
|---|---|---|
delimiter |
string | any delimiter that should be stripped |
- Source:
Returns:
an associative array of parameter values
- Type
- object
(static) getRHO(direction) → {string}
Get the LHO of the specified direction.
No check is performed since it is assumed caller will check this is a valid direction.
Parameters:
| Name | Type | Description |
|---|---|---|
direction |
string | the direction whose LHO is needed. |
- Source:
Returns:
the lho of specified direction
- Type
- string
(static) isBid(suit)
Check if call is a bid ( not pass double or redouble )
Parameters:
| Name | Type | Description |
|---|---|---|
suit |
string | the suit of the call |
- Source:
Returns:
true if it is a bid
(static) makeIdentifier(text) → {string}
Convert text to a valid identifier.
Parameters:
| Name | Type | Description |
|---|---|---|
text |
string | the text to make an identifier |
- Source:
Returns:
the text stripped of invalid id characters
- Type
- string


Learn about Gaebrielle's:
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
∇
Family Early Life Interests Favorite Music Favorite Movies Favorite Art Favorite Foods Current Life
or Return to the Homepage


Download Code
Introduction
We introduce the following notation: $L^2=L^2\left(\Omega\right)$, $L^2_T=L^2\left(\Omega\times \left(0,T\right)\right)$,
and the correspondent norms $\norm{\cdot}=\langle \cdot,\cdot\rangle$ and $\norm{\cdot}_T=\langle \cdot,\cdot\rangle_T$. Moreover, we define the norms
We want to study the following optimal control problem:
where $L: \ L^2_T \to L^2_T$ is defined by
and $y$ is the solution of the PDE given by
Notice that, by integration by parts, $ L^*\mu=B^\ast p $, where $\varphi$ is solution of the adjoint equation:
Sparse control: $\alpha_c>0$ ($\alpha_s=0$)
The stationary problem
Optimality conditions
Numerical algorithm
In order to compute a numerical solution of problem
after a discretization by finite differences, we use a prox-prox splitting: first write the state as $y=A^{-1}Bu$, then
- Proximal-point step:
$$
\begin{equation*}
\begin{split}
\tilde{u}_{k} & =argmin_{u\in L^2} \left\{\frac{\beta}{2}\norm{u}^2 + \frac{\gamma}{2}\norm{A^{-1}Bu-z}^2+ \frac{1}{2\lambda_k}\norm{u-u_k}^2\right\}\\
& = \left[\left(\beta+\frac{1}{\lambda_k}\right)I+\gamma B^*A^{-*}A^{-1}B\right]^{-1}\left(\frac{1}{\lambda_k}u_k+\gamma B^*A^{-*}z\right).
\end{split}
\end{equation*}
$$
- Proximal-point step:
$$
\begin{equation*}
\begin{split}
u_{k+1}& =argmin_{u\in L^2} \left\{\alpha_c \norm{u}_{1,T} + \frac{1}{2\lambda_k}\norm{u-\tilde{u}_k}_{T}^2\right\}\\
& = shrink(\tilde{u}_k,\alpha_c \lambda_k).
\end{split}
\end{equation*}
$$
Remark: Notice that, when $\alpha_s=0$, the solution of $\left(\mathcal{P}^c_s\right)$ is simply given by
Evolutionary problem
Optimality conditions
Define the classical Lagrangian
By integration by parts, we have
Deriving with respect to the three variables $\left(u,y,p\right)$, we obtain the optimality system:
where the relation between the optimal control and the dual state is given by
The latter is equivalent to
where the operator of $soft-shrinkage$ is defined by
Finally,
Numerical algorithm
In order to compute a numerical solution of problem $\left(\mathcal{P}_c\right)$, after a discretization by finite differences, we use a grad-prox splitting:
- Gradient step:
$$
\begin{equation*}
\begin{split}
\tilde{u}_{k} & = u_k-\lambda_k \nabla_u \left[\frac{\beta}{2}\norm{u}^2_{T} + \frac{\gamma}{2}\norm{Lu-z}_{T}^2 \right]\left(u_k\right) \\
& = u_k-\lambda_k \left[\beta u_k+\gamma L^*\left(Lu_k-z\right)\right]\\
& = u_k - \lambda_k\left[\beta u_k+\gamma B^*p_k\right],
\end{split}
\end{equation*}
$$
where
$$
\begin{equation*}
\begin{cases}
y_k'+Ay_k=Bu_k & \left(\Omega \times \left(0,T\right)\right)\\
y_k=0 & \left(\partial\Omega\times \left(0,T\right)\right)\\
y_k(0)=0 & \left(\Omega\right)
\end{cases}
\end{equation*}
$$
and
$$
\begin{equation*}
\begin{cases}
-p_k'+A^* p_k =y_k-z & \left(\Omega \times \left(0,T\right)\right)\\
p_k=0 & \left(\partial\Omega\times \left(0,T\right)\right)\\
p_k(T)=0 & \left(\Omega\right).
\end{cases}
\end{equation*}
$$
- Proximal-point step:
$$
\begin{equation*}
\begin{split}
u_{k+1}& =argmin_{u\in L^2_T} \left\{\alpha_c \norm{u}_{1,T} + \frac{1}{2\lambda_k}\norm{u-\tilde{u}_k}_{T}^2\right\}\\
& = shrink(\tilde{u}_k,\alpha_c \lambda_k).
\end{split}
\end{equation*}
$$
Remarks: Another possibility is to include the term $\frac{\beta}{2}\norm{u}^2_{T}$ in the proximal step.
Notice that, for
then $\nabla f$ is Lipschitz continuous. Indeed, for $u_i\in L^2_T$ ($i=1,2$), then
where
and
By linearity $\delta y=y_2-y_1$ and $\delta p=p_2-p_1$ solve the same equations with right-hand-sides $B(u_2-u_1)$ and $\delta y$, respectively. Then
where we defined
In order the prox-grad method to converge, the restriction on the step size is given by
Sparse state: $\alpha_s>0$ ($\alpha_c=0$)
The stationary problem
Optimality conditions
Finally, we obtain a single equation in the dual variable $p$:
Numerical algorithm
In order to compute a numerical solution of problem $\left(\mathcal{P}_s\right)$, after a discretization by finite differences, we use a prox-prox splitting on the Augmented Energy: first write the state as $y=A^{-1}Bu$, then
- Proximal-point step:
$$
\begin{equation*}
\begin{split}
u_{k+1} & =argmin_{u\in L^2} \left\{\frac{\beta}{2}\norm{u}^2 + \frac{\gamma}{2}\norm{A^{-1}Bu-z}^2+\frac{\delta}{2\lambda_k}\norm{A^{-1}Bu-y_k}^2 +\frac{1}{2\lambda_k}\norm{u-u_k}^2\right\}\\
& = \left[\left(\beta+\frac{1}{\lambda_k}\right)I+\left(\gamma+\frac{\delta}{\lambda_k}\right) B^*A^{-*}A^{-1}B\right]^{-1}\left[\frac{1}{\lambda_k}u_k+ B^*A^{-*}\left(\gamma z+\frac{\delta}{\lambda_k}y_k\right)\right].
\end{split}
\end{equation*}
$$
- Proximal-point step:
$$
\begin{equation*}
\begin{split}
y_{k+1}& =argmin_{y\in L^2} \left\{
\alpha_s \norm{y}_{1} + \frac{\delta}{2\lambda_k}\norm{y-A^{-1}Bu_{k+1}}^2+\frac{1}{2\lambda_k}\norm{y-y_k}_{T}^2\right\}\\
& = shrink(\tilde{y}_k,\tilde{\lambda}_k),
\end{split}
\end{equation*}
$$
where we defined
$$
\begin{eqnarray*}
\tilde{y}_k & = & \frac{y_k+\delta A^{-1}B u_{k+1}}{1+\delta};\\
\tilde{\lambda}_k & = & \frac{\alpha_s \lambda_k}{1+\delta}.
\end{eqnarray*}
$$
Remark: Notice that again, when $\alpha_s=0$, the solution of $\left(\mathcal{P}_s\right)$ is simply given by
Evolutionary problem
Optimality conditions
Define the classical Lagrangian
By integration by parts, we have
Deriving with respect to the three variables $\left(u,y,p\right)$, we obtain the optimality system:
where the relation between the optimal control and the dual state is given by
The adjoint equation is equivalent to
Finally,
Numerical algorithm
In order to compute a numerical solution of problem $\left(\mathcal{P}_s\right)$, after a discretization by finite differences, we use a grad-prox splitting on the following Augmented Energy:
Then,
- Gradient step:
$$
\begin{equation*}
\begin{split}
u_{k+1} & = u_k-\lambda_k \nabla_u \left[\frac{\beta}{2}\norm{u}^2_{T}+ \frac{\gamma}{2}\norm{Lu-z}_{T}^2+\frac{\delta}{2\lambda}\norm{Lu-y}_{T}^2 \right]\left(u_k\right) \\
& = u_k-\lambda_k \left[\beta u_k+\gamma L^*\left(Lu_k-z\right)+\frac{\delta}{\lambda_k}L^*\left(Lu_k-y_k\right)\right]\\
& = \left(1-\beta\lambda_k\right)u_k - B^*p_k,
\end{split}
\end{equation*}
$$
where
$$
\begin{equation*}
\begin{cases}
y_{u_k}'+Ay_{u_k}=Bu_k & \left(\Omega \times \left(0,T\right)\right)\\
y_{u_k}=0 & \left(\partial\Omega\times \left(0,T\right)\right)\\
y_{u_k}(0)=0 & \left(\Omega\right)
\end{cases}
\end{equation*}
$$
and
$$
\begin{equation*}
\begin{cases}
-p_k'+A^* p_k =\left(\gamma \lambda_k + \delta\right)y_{u_k}-\gamma \lambda_k z - \delta y_k & \left(\Omega \times \left(0,T\right)\right)\\
p_k=0 & \left(\partial\Omega\times \left(0,T\right)\right)\\
p_k(T)=0 & \left(\Omega\right).
\end{cases}
\end{equation*}
$$
- Proximal-point step:
$$
\begin{equation*}
\begin{split}
y_{k+1}& =argmin_{y\in L^2_T} \left\{\alpha_s \norm{y}_{1,T} + \frac{\delta}{2\lambda_k}\norm{y-Lu_{k+1}}_T^2+\frac{1}{2\lambda_k}\norm{y-y_k}_{T}^2\right\}\\
& = shrink(\tilde{y}_k,\tilde{\lambda}_k),
\end{split}
\end{equation*}
$$
where we defined
$$
\begin{eqnarray*}
\tilde{y}_k & = & \frac{y_k+\delta L u_{k+1}}{1+\delta};\\
\tilde{\lambda}_k & = & \frac{\alpha_s \lambda_k}{1+\delta}.
\end{eqnarray*}
$$
Remark: Another possibility is to consider
$$
\begin{equation*}
\mathcal{L}_{\lambda}\left(u,y\right)=\frac{\beta}{2}\norm{u}^2_{T}+\alpha_s \norm{y}_{1,T}+ \frac{\gamma}{2}\norm{y-z}_{T}^2+\frac{\delta}{2\lambda}\norm{Lu-y}_{T}^2.
\end{equation*}
$$
Computational experiments
In the following, we present the setting for the numerical experiments.
- Spacial domain: $\Omega=\left(0,1\right)$;
- Time interval: $\left[0,T\right]$, with $T=1$;
- Weight-parameters: $\alpha_c=[0, 0.01]$, $\alpha_s=[0, 0.65]$, $\beta=0.0001$ and $\gamma=1$;
- Trajectory target: $$z(x)=\mathcal{I}_{\left[x_a,x_b\right]},$$ where $x_a=1.7/3$, $x_b=3.5/4$;
- Control operator: for $x_1=1/7$ and $x_2=4/5$,
$$B=\mathcal{I}_{\left[x_1,x_2\right]};$$
- $A$ is the finite difference discretization of $-\Delta$;
- Numerical grid: $N_x=300$ in space, $N_t=100$ in time.
Stationary solutions
Figure 1: $\alpha_c=\alpha_s=0$.
Figure 2: $\alpha_c=0.01$, $\alpha_s=0$.
Figure 3: $\alpha_c=0$, $\alpha_s=0.65$.
Evolutionary problem
Optimal control
Figure 4a: Optimal control for $\alpha_c=\alpha_s=0$. In red, the controllable subdomain; in blue, the stationary optimal controls.
Figure 4b: Optimal control for $\alpha_c=0.01$, $\alpha_s=0$. In red, the controllable subdomain; in blue, the stationary optimal controls.
Figure 4c: Optimal control for $\alpha_c=0$, $\alpha_s=0.65$. In red, the controllable subdomain; in blue, the stationary optimal controls.
Optimal state
Figure 5a: Optimal state for $\alpha_c=\alpha_s=0$ . In red, the target $z$; in blue, the stationary optimal states.
Figure 5b: Optimal state for $\alpha_c=0.01$, $\alpha_s=0$. In red, the target $z$; in blue, the stationary optimal states.
Figure 5c: Optimal state for $\alpha_c=0$, $\alpha_s=0.65$. In red, the target $z$; in blue, the stationary optimal states.
Optimal adjoint
Figure 6a: Optimal adjoint for $\alpha_c=\alpha_s=0$.
Figure 6b: Optimal adjoint for $\alpha_c=0.01$, $\alpha_s=0$.
Figure 6c: Optimal adjoint for $\alpha_c=0$, $\alpha_s=0.65$.
Bibliography
[1] Peypouquet, J. Convex optimization in normed spaces: theory, methods and examples. With a foreword by Hedy Attouch. Springer Briefs in Optimization. Springer, Cham, 2015. xiv+124 pp.


Ever wondered how these guys like Swiggy,Ola etc are utilizing google maps? Lets dive into and learn one of the google's API (i.e.)Google Maps API and learn how to integrate with in Angular CLI app.
To begin with the Google's API the pre-requisite is to acquire a API key from google.You can get one by following steps in official site.
Now as usual lets create a CLI app.
Lets consider you don't have CLI installed, then go ahead and install CLI using the command globally.
Now lets create a new CLI app named G-Map.
This command will create a app in the folder G-Map, now lets cd into the folder and run the command
This will run the angular app in port 4200 by default. So you can launch the app by browsing to localhost:4200. It will launch a default Angular cli app.
Now lets move on and create a component for Google map API using CLI.
Let’s create the component.
This will create the following files in our src/app/g-map folder:
To get Typescript support for Maps API install types supporting Google Maps. Run the following command to install types.
Link the Google Maps JavaScript CDN as a script tag inside Index.html


Welcome to my page!


{% extends "moneybags/base.html" %} {% block content %}
include some info about this app... and about getting started


Overnight my setup has stopped working correctly. Its been fine until now.
I'm using the prebuild SD card OOTB and emoncms.org.
Looking at the 'inputs' page, data isn't getting through to emoncms. I've restarted everything a few times and the odd bit has got through, but its basically not working.
My LCD is still showing and recording values. (but I do get a 'basefail' over the temperature, is this significant?)
Many thanks...
Re: is there a problem with emoncms.org?
Hello JetJackson, looks ok from here, everythings running as expected and i've checked a few accounts they appear to be working fine, I see your getting some data through but its intermittent? Could there be a connectivity issue on your end?
Re: is there a problem with emoncms.org?
I've been running a ping test during the morning. I'm loosing about 2%. 342/11904.
So does the basefail by the temperature mean there is an issue sending data to emoncms?
Re: is there a problem with emoncms.org?
"-emonBase fail-" on the emonGLCD means that more than 20 s elapsed between radio messages from the emonBase. That does not necessarily mean that the messages between the emonTx and the emonBase failed.
The radio messages that are sent are:
1. Power etc: emonTx => emonBase & emonGLCD
2. Temperature : emonGLCD => emonBase
3. Time: emonBase => emonGLCD
Re: is there a problem with emoncms.org?
Thanks Robert,.
the base being the Pi? Hmm the LCD is sat on top of it.
And the emonTH - do they send to the tx or direct to the base?
so do you think my problem is at home? What range is possible between the pieces?
Re: is there a problem with emoncms.org?
"the base being the Pi? Hmm the LCD is sat on top of it." And that could be a problem! The signal will be overloading the input. It's possible to turn down the transmit power, but I can't tell you immediately how you do that, and it's a fairly advanced procedure anyway.
"And the emonTH - do they send to the tx or direct to the base?" All the nodes that send data broadcast it to nowhere in particular. It is the receivers that decide whether they are interested in messages from a particular transmitter, or whether to ignore it. The base (in your case the RPi) usually listens for any transmitter and forwards or uses the data regardless, the emonGLCD only listens to one emonTx and the base by default. By default, the emonTx does not listen at all, except to check that no-one else is transmitting when it wants to.
I don't know where the problem is - you'll have to try to figure that out for yourself. There is no definitive figure for range. It depends on a lot of things - the construction of the building, what there is to absorb and reflect the signal, etc as well as distance. I set up an emonTx working across a garden (about 18 m) and then through a 200 mm stone wall - this is at 868 MHz. The usual figure given is 100 m over open ground. You can improve the range at the expense of data rate.
Re: is there a problem with emoncms.org?
hmm.. well the LCD is actually working OK. It updates OK and shows all values and appears to be correct. The data just isn't getting to emoncms consistently. Some feeds are updating sometimes but minutes apart. Also some are showing as updated but with the wrong value.
Re: is there a problem with emoncms.org?
(PS : Very frustrating as it was all going so well!!)
Re: is there a problem with emoncms.org?
If you are using the shops SD card, you can use the troubleshooting guide at the end of this page http://emoncms.org/site/docs/raspberrypigateway to help see what is happening. It will enable you check the time & frequency of the packets arriving as well as the values.
From what you've told us above it sounds like intermitant & incomplete packets arriving at the Pi, possibly due to range which could be ruled out by moving the Pi to locations closer to emonTx/TH's (or visa versa) to test .It could also rf traffic clashes or interference this isn't so easy to test for but should be evident in the oem gateway logs.
Also check you don't have any redundant targets active in the oem gateway settings, if there are that will cause the gateway to be tied up trying to deliver to that target and may miss incoming packets whilst waiting for a response.
Paul
Re: is there a problem with emoncms.org?
A quick update.
I've just setup my 3G enabled router and connected the Pi so its now connected over Three 3G rather than BT BB. It seems to be uploading via this route OK.
This does point to a problem with BT. They ran all the checks yesterday and said the line etc was fine. No other changes have been made here. I've rebooted the HomeHub, swapped cables etc, but no change. It works for maybe 30s to a min then nothing for 5, 10, or even 30 mins.
I'm not really sure where to start with how to diagnose a problem on the BB. Web browsing is OK but its almost as if the BT path is blocking the data sent from the Pi?
Re: is there a problem with emoncms.org?
PS : Thanks for the troubleshooting link I will have a read through it later today.
Re: is there a problem with emoncms.org?
If that is the case it would be clear to spot using the troubleshooting guide as failed deliveries are logged, this would go a long way to prove the issue is definitely network.
Re: is there a problem with emoncms.org?
Attached image is of the last few hours since the switch to the 3G router. No lost data and all OK.


This is a pre-alpha version. It lacks a lot of features (caching, user experience etc.) and may be buggy.
Just tap the Start button below to get the latest weather.


Developing renewable energy in an environmentally responsible manner requires mitigation of potentially sensitive species. Herein we characterize the habitat of the Gaviota tarplant ( Dienandra increscens ssp. villosa) for the Strauss Wind Energy Site in north Santa Barbara County area for the purposes of delineating habitat and informing potential enhancement and restoration efforts.
To describe habitat we built separate models associated with different stages of identification associated with different environmental predictors: 1) landscape features describable based on terrain given a digital elevation model (DEM); 2) biotic factors around the plants related to species performance; and 3) soil characteristics derived from lab analysis. Each of these stages represents an increasingly detailed view requiring additional levels of effort. This phased approach is meant to reduce the costs in time and effort for facilitating future survey and restoration efforts.
Given these environmental predictors various responses were used to build the statistical relationships based on the binary presence or absence and nine continuous responses related to abundance, percent cover, height, flowering and fruiting. We use the most sophisticated common methods for building species distribution models, namely MaxEnt for binary presence/absence (Elith et al., 2011; Elith & Leathwick, 2009; Fletcher et al., 2019; Merow et al., 2013; Phillips et al., 2017) and for continous responses RandomForest (Evans et al., 2011; Kosicki, 2020; Luan et al., 2020; Zhang et al., 2020).
The observational data was limited to 40 observations nearly evenly weighted by presence (n=21) and absence (n=19) of Gaviota tarplant (GVTP; Dienandra increscens ssp. villosa). The environmental predictors were much more numerous (n=81; Table 2) than response (n=10; (Table ??) terms, categorized by 19 landscape, 7 biotic and 55 soil predictor variables.
| Response,short | Response,long |
|---|---|
| g_cnt | gvtp_count |
| g_cov | gvtp_cover |
| g_flwr | gvtp_percent_flowering |
| g_fruit | gvtp_percent_fruiting |
| g_head | gvtp_heads |
| g_ht | gvtp_height_cm_avg |
| g_perf | gvtp_performance |
| g_pres | gvtp_presence |
| g_repro | gvtp_reproductive_potential |
| g_veg | gvtp_percent_vegetative |
| Category | Predictor,short | Predictor,long |
|---|---|---|
| biotic | hrb_ht | herbheight_avg_cm |
| biotic | nativ | pct_native_cover |
| biotic | nativity | pct_nativity |
| biotic | nonnativ | pct_nonnative_cover |
| biotic | plant | pct_plant_cover |
| biotic | wt_g | dry_wt_g |
| biotic | wt_lbs | dry_wt_lbs_acre |
| landscape | asp | aspect |
| landscape | asp_cir | aspect_cir |
| landscape | asp_cir_deg | aspect_cir_deg |
| landscape | asp_cir_e | aspect_cir_east |
| landscape | asp_cir_n | aspect_cir_north |
| landscape | asp_cir_rad | aspect_cir_rad |
| landscape | asp_deg | aspect_deg |
| landscape | asp_e | aspect_east |
| landscape | asp_n | aspect_north |
| landscape | asp_rad | aspect_rad |
| landscape | bare | bare_grnd_cover |
| landscape | dstrb | soil_dist_cover |
| landscape | dstrb_cir | soil_dist_cover_cir |
| landscape | elev | elevation |
| landscape | slp_deg | slope_degrees |
| landscape | slp_deg_cir | slope_degrees_cir |
| landscape | slp_pos | slope_position |
| landscape | slp_shp | slope_shape |
| landscape | slp_shp_cir | slope_shape_cir |
| soil | ag | silver |
| soil | al | aluminum |
| soil | anion | anion sum |
| soil | as | arsenic |
| soil | b | boron |
| soil | b_b | boron as B |
| soil | ba | barium |
| soil | ca | calcium |
| soil | ca_mgl | calcium_mgl |
| soil | ca_mil | calcium_millieq |
| soil | cation | cation sum |
| soil | cd | cadmium |
| soil | cl | chloride |
| soil | cl_mgl | chloride_mgl |
| soil | cl_mil | chloride_millieq |
| soil | co | cobalt |
| soil | cr | chromium |
| soil | cu | copper |
| soil | fe | iron |
| soil | gyps | est. gypsum requirement-lbs./1000 sq. ft. |
| soil | hg | mercury |
| soil | hlf_sat | half saturation percentage |
| soil | k | potassium |
| soil | k_mgl | potassium_mgl |
| soil | k_mil | potassium_millieq |
| soil | li | lithium |
| soil | mg | magnesium |
| soil | mg_mgl | magnesium_mgl |
| soil | mg_mil | magnesium_millieq |
| soil | mn | manganese |
| soil | mo | molybdenum |
| soil | moist | moisture content of soil |
| soil | n | nitrate |
| soil | n_mgl | nitrate as N_mgl |
| soil | n_mil | nitrate as N_millieq |
| soil | na | sodium |
| soil | na_mgl | sodium_mgl |
| soil | na_mil | sodium_millieq |
| soil | ni | nickel |
| soil | organic | organic matter |
| soil | p | phosphorus |
| soil | p_mgl | phosphorus as P_mgl |
| soil | p_mil | phosphorus as P_millieq |
| soil | pb | lead |
| soil | ph | pH |
| soil | rel_infil | relative infiltration rate |
| soil | salin | salinity |
| soil | sar | SAR |
| soil | se | selenium |
| soil | soil_txtr | estimated soil texture |
| soil | sr | strontium |
| soil | su | sulfur |
| soil | su_mgl | sulfate as S_mgl |
| soil | su_mil | sulfate as S_millieq |
| soil | zn | zinc |
Given many more predictors (n=81) than observations (n=40), the first challenge of this analysis was to winnow predictors down to a reasonable subset so as to avoid issues of overfitting and multicollinearity. To do this, we pre-selected predictors (x
) across the suite of responses (y
) based on individual relationships showing a significant relationship (p.value <= 0.05) for either a simple linear model (y ~ x
) or one with an additional quadratic term (y ~ x + x^2
) to allow for non-linear niche response (i.e. bell-shaped biological response around some optimal environmental predictor value). Predictors were further filtered for those not autocorrelated (Spearman’s correlation <= 0.7) based on the individual model with the lowest Akaike information criterion (AIC) to produce the most parsimonious model without autocorrelated predictors.
Once a reasonable subset of predictors were chosen per response, data were randomly split into training data (80%) to fit the model and test data (20%) to evaluate model performance. Model performance was based on Accuracy (higher score is better) for the binary response (presence) to compare Maxent against RandomForest models. To compare the continuous response models, a Normalized Root Mean Square Error (NRMSE; lower score is better) was used to allow for model selection between different response terms.
To then select which models to employ for each category (landscape, biotic, soil) requires a value judgement. We propose that the presence response be used at the landscape level as a logical, simple first step in habitat assessment. For this type of binary response data Maxent has been demonstrated to be especially performant with few observations (Fletcher et al., 2019; Hijmans & Elith, 2013). For the subsequent biotic and soil categories, a model based on continuous response could then inform on the reproductive potential of the species.
Although gvtp_height_cm_avg (g_ht) has the best performance, ecological interpretability might favor gvtp_percent_vegetative (g_veg).
I could also package this in such a way that data could be entered in the future at each categorical stage and predictions run within a few simple R functions. These could also be easily folded into a Shiny application with a user interface for uploading the CSVs to run the predictions.
Elith, J., & Leathwick, J. R. (2009). Species Distribution Models: Ecological Explanation and Prediction Across Space and Time. Annual Review of Ecology, Evolution, and Systematics, 40(1), 677–697. https://doi.org/10.1146/annurev.ecolsys.110308.120159
Elith, J., Phillips, S. J., Hastie, T., Dudík, M., Chee, Y. E., & Yates, C. J. (2011). A statistical explanation of MaxEnt for ecologists. Diversity and Distributions, 17(1), 43–57.
Evans, J. S., Murphy, M. A., Holden, Z. A., & Cushman, S. A. (2011). Modeling Species Distribution and Change Using Random Forest. In C. A. Drew, Y. F. Wiersma, & F. Huettmann (Eds.), Predictive Species and Habitat Modeling in Landscape Ecology: Concepts and Applications (pp. 139–159). Springer. https://doi.org/10.1007/978-1-4419-7390-0_8
Fletcher, R. J., Hefley, T. J., Robertson, E. P., Zuckerberg, B., McCleery, R. A., & Dorazio, R. M. (2019). A practical guide for combining data to model species distributions. Ecology, 100(6), e02710. https://doi.org/10.1002/ecy.2710
Hijmans, R. J., & Elith, J. (2013). Species distribution modeling with R. R Package Version 0.8-11.
Kosicki, J. Z. (2020). Generalised Additive Models and Random Forest Approach as effective methods for predictive species density and functional species richness. Environmental and Ecological Statistics, 27(2), 273–292. https://doi.org/10.1007/s10651-020-00445-5
Luan, J., Zhang, C., Xu, B., Xue, Y., & Ren, Y. (2020). The predictive performances of random forest models with limited sample size and different species traits. Fisheries Research, 227, 105534. https://doi.org/10.1016/j.fishres.2020.105534
Merow, C., Smith, M. J., & Silander, J. A. (2013). A practical guide to MaxEnt for modeling species’ distributions: What it does, and why inputs and settings matter. Ecography, 36(10), 1058–1069. https://doi.org/10.1111/j.1600-0587.2013.07872.x
Phillips, S. J., Anderson, R. P., Dudík, M., Schapire, R. E., & Blair, M. E. (2017). Opening the black box: An open-source release of Maxent. Ecography, 40(7), 887–893. https://doi.org/10.1111/ecog.03049
Zhang, C., Chen, Y., Xu, B., Xue, Y., & Ren, Y. (2020). Improving prediction of rare species’ distribution from community data. Scientific Reports, 10(1), 12230. https://doi.org/10.1038/s41598-020-69157-x


{{post.title}}
{{post.description}}
{{post.username}} --- {{post.createdAt}}
{{post.username}}
{{post.createdAt}}
No posts have been added.


If you are already aware of Free Software & Free Hardware, then you might be interested to be part of our community.
Some of our community works include creating or exploring and deploying Free Software Alternatives, Project Meshnet, Community Weather stations, etc.
In past, we have organized various workshops for students & teachers. Every year, we organize Summer Camp to introduce Free Software to students.
If your institution is looking for a workshop on Free Software and related technologies, feel free to mail us at<EMAIL_ADDRESS>We have defended the adoption of Free Software and Net Neutrality. We have launched public campaigns to create awareness to the general public, all through the voluntary actions of our community members.
A manifesto for FSFTN will be made available shortly.
Swift Women In Free Technologies is a community initiative by FSFTN exclusively for Women. This initiative was launched with the aim of addressing the gender gap in Free Software communities.
Website


What did I do?
I made a website that generates a piece of art and a song snippet based on the track name and artist that a user enters. It puts the phrase of a song that is one of the most common ones in the song on the piece of art. It generates the artwork by searching for it using the words from the snippet until it finds an artwork.
Why did I do it?
I did it because I was looking through
flyartproductions page that showcases similar artworks and was inspired to make their generator.
How did I do it?
I did it by asking the user to input the name of a song and optionally its artist. It finds the song and gets its ID that is used by MusixMatch. The ID of the track is used to find the snippet of the song. When the snippet is found it is turned into an array with every word representing an element in it. The words are used as terms individually to search for artworks in Rijksmuseum database. Once a piece of art is found using a particular term, the link to its image is used as as source in the code to display it. Finally, all commas and dots are removed from the snippet, it is capitalized and displayed on the artwork.
What resources did I use?
I used MusixMatch API and Rijksmuseum API. With MusixMatch I had to look up the song, find its ID and get the snippet. With Rijksmuseum I just looked for an artwork that using terms from the snippet. Links to both of the sites are listed in the bottom left corner.
What major challenges or realizations came up?
Linking JavaScript functions to HTML code and CSS code was challenging. However, a lot of helpful guides exist online. Moreover, CSS positioning was probably the most difficult aspect of the project.
Lessons learned
I learned that I should write HTML and CSS simultaneously in order to make it efficient and clean.


|
|
def | __init__ |
| |
|
def | topic_size |
| |
|
def | topic_list |
| |
|
def | topic |
| |
|
def | set_topic |
| |
|
def | add_topic |
| |
|
def | clear_topic |
| |
|
def | MergeFrom |
| |
|
def | Equals |
| |
|
def | IsInitialized |
| |
|
def | ByteSize |
| |
|
def | ByteSizePartial |
| |
|
def | Clear |
| |
|
def | OutputUnchecked |
| |
|
def | OutputPartial |
| |
|
def | TryMerge |
| |
|
def | __str__ |
| |
The documentation for this class was generated from the following file:
- code/googleappengine-read-only/python/google/appengine/api/prospective_search/prospective_search_pb.py


- ActActDCParams - Class in org.drip.analytics.daycount
-
Class contains parameters to represent the Act/Act day count.
- ActActDCParams(byte[]) - Constructor for class org.drip.analytics.daycount.ActActDCParams
-
De-serialization of ActActDCParams from byte stream
- ActActDCParams(int, double, double) - Constructor for class org.drip.analytics.daycount.ActActDCParams
-
Constructs an ActActDCParams instance from the corresponding parameters
- addBusDays(int, String) - Method in class org.drip.util.date.JulianDate
-
Add the given number of business days and returns a new JulianDate
- addCC(String, CreditCurve) - Method in class org.drip.param.market.BasketMarketParams
-
Adds a named credit curve
- addCompQuote(String, ComponentQuote) - Method in class org.drip.param.market.MarketParamsContainer
-
Adds the component quote
- addCompQuotes(Map<String, ComponentQuote>) - Method in class org.drip.param.market.MarketParamsContainer
-
Adds the full map of component quotes
- addDays(int) - Method in class org.drip.util.date.JulianDate
-
Add the given number of days and returns a new JulianDate
- addDC(String, DiscountCurve) - Method in class org.drip.param.market.BasketMarketParams
-
Adds a named discount curve
- addFixedHoliday(int, int, String) - Method in class org.drip.analytics.daycount.LocHolidays
-
Adds a fixed holiday from the day and month
- addFixings(JulianDate, String, double) - Method in class org.drip.param.market.MarketParamsContainer
-
Adds the fixing for the given rate index and the given date
- addFloatingHoliday(int, int, int, boolean, String) - Method in class org.drip.analytics.daycount.LocHolidays
-
Adds a floating holiday from the week in month, the day in week, the month, and whether holidays are
calculated from front/back.
- addMonths(int) - Method in class org.drip.util.date.JulianDate
-
Add the given number of months and returns a new JulianDate
- addQuote(String, Quote, boolean) - Method in class org.drip.product.quote.ComponentQuote
-
Adds a regular or a market quote for the component
- addScenBMP(String, BasketMarketParams) - Method in class org.drip.param.market.MarketParamsContainer
-
Adds the named scenario BMP
- addScenCC(String, CreditCurveScenarioContainer) - Method in class org.drip.param.market.MarketParamsContainer
-
Adds the named scenario CC
- addScenCMP(String, ComponentMarketParams) - Method in class org.drip.param.market.MarketParamsContainer
-
Adds the named scenario CMP
- addScenDC(String, IRCurveScenarioContainer) - Method in class org.drip.param.market.MarketParamsContainer
-
Adds the named scenario DC
- addStandardWeekend() - Method in class org.drip.analytics.daycount.LocHolidays
-
Adds the regular SATURDAY/SUNDAY weekend
- addStaticHoliday(JulianDate, String) - Method in class org.drip.analytics.daycount.LocHolidays
-
Adds the given date as a static holiday
- addStaticHoliday(String, String) - Method in class org.drip.analytics.daycount.LocHolidays
-
Adds the given string date as a static holiday
- addTenor(String) - Method in class org.drip.util.date.JulianDate
-
Adds the tenor to the JulianDate to create a new date
- addTSYQuote(String, ComponentQuote) - Method in class org.drip.param.market.MarketParamsContainer
-
Adds the named Treasury Quote
- AddTSYQuotesToMPC(MarketParamsContainer, Statement, JulianDate, String) - Static method in class org.drip.service.env.EODCurves
-
Adds the TSY quotes to the specified MPC
- AddTSYToMPC(MarketParamsContainer) - Static method in class org.drip.service.env.StaticBACurves
-
Adds custom treasuries to the MarketParamsContainer
- addWeekend(int[]) - Method in class org.drip.analytics.daycount.LocHolidays
-
Adds the array of weekend days
- addYears(int) - Method in class org.drip.util.date.JulianDate
-
Add the given number of years and returns a new JulianDate
- Adjust(double, String, int) - Static method in class org.drip.analytics.daycount.DayCountBasis
-
Adjusts the given date in accordance with the adjustment mode and the calendar set
- Adjust(JulianDate, String, int) - Static method in class org.drip.service.api.FI
-
Adjusts the given date according to the calendar set and the adjustment mode
- adjustForAccrual(double, double, double, boolean) - Method in class org.drip.calc.output.BondCouponMeasures
-
Adjust Measures for accrued
- adjustForSettlement(double) - Method in class org.drip.calc.output.BondCouponMeasures
-
Adjusts the bond coupon measures by a cash settlement discount factor
- AnalyticsClient - Class in org.drip.service.external
-
Class captures the requests for the FI server from the GUI client, formats them, and sends them to the
AnalyticsServer.
- AnalyticsClient() - Constructor for class org.drip.service.external.AnalyticsClient
-
- AnalyticsServer - Class in org.drip.service.external
-
This class receives the requests from the analytics client, and invokes the FI functionality, and sends
the client the results.
- AnalyticsServer() - Constructor for class org.drip.service.external.AnalyticsServer
-
- APRIL - Static variable in class org.drip.util.date.JulianDate
-
Integer Month - April
- AUGUST - Static variable in class org.drip.util.date.JulianDate
-
Integer Month - August