For years, I have wanted to work in the industry that I had trained for in college. This industry, Application Specific Integrated Chip(ASIC) Design, will always be fascinating as the heart of technology is always created in this line of work. I worked for an ASIC design services company and found it to be a marvelous ride filled with experiences that I'll never forget. However, I started wondering if this was my true calling.
The answers to these questions are important to me as I want to stay engaged and focused as well as having role models to follow. I began looking into programming and web development as it was something that I have always feared. After spending 19 intensive weeks at a coding bootcamp, I can say that I'm simultaneously comfortable and uncomfortable while being challenged on a daily basis. I'm motivated by seeing such a large community contributing to numerous projects all around the world. Mentorship and inspiration will be the main factors that will drive you year in and year out.
Hummingbird was created with a purpose of scheduling text messages so that they could be sent at the right time. Our idea was to have the backend API always up and running so that frontend users could connect to it. The best way to envision this idea was through decoupled architecture. By decoupling the web app, the backend could actively batch up messages to be sent while the frontend users access the application to schedule their messages. The tech stack includes Ruby on Rails using the Twilio API for the backend and Ionic(AngularJS) framework for the frontend.


{% extends 'polls/base.html' %} {% block content %}
I am a university student who is interested in artificial intelligence & machine learning. I built this website to explore both
the boundaries of ethical consideration and in response to those who disagreed with the hard determinism of something like MIT's Moral Machine. With Shifting Morals, people can examine how chance plays a role in their decisions and how that influences their feelings about making choices.
I hope this website can provide not answers, but instead help provide the questions we should be asking when looking at machine ethics.
 Machine ethics contrasts with roboethics, which is concerned with the moral behavior of humans as they design, construct, use and treat such beings. Machine ethics should not be confused with computer ethics, which focuses on professional behavior towards computers and information."
-- Wikipedia


--- layout: page title: Carrots and Peas type: screening ---
Carrots & Peas
Text.
Color, Sound, 16mm
Watch: http://www.hulu.com/watch/497488


Hello, I’m a Saad, junior-developer based on Quebec. I love creating beautiful websites and application to provide intuitive and dynamic experience to our users. Since the age of 22, when I first learnt to code, I have felt in love with the art of programming. The possibility of writing code from one tiny corner of the world to create websites and applications which can be beneficial to people all around the world through the power of internet is a truly humbling experience.
I graduate with my Bachelor's degree in technologies from the university of Sfax, Tunisia. In September 2020, i participate in the CodeBoxx Quebec City Bootcamp, is a unique experiential learning opportunity that encourages the application of theoretical knowledge to real-world scenarios and provides unparalleled mentorship and industry exposure.
Beside programming, I love travelling, spending time with my family, reading books and playing chess.
View ResumeGit is the most popular Version Control System (VCS) in the world. It helps you track your project history, revert back your code in case of mistakes, and work effectively in a team.
✓ Collaborate with other developers easily
✓ Use GitHub as an open portfolio for potential employers
✓ Get involved in open-source development
JavaScript is the most widely used programming language, all over the world. It has the largest open-source package repository in the world (npm). Every type of software uses JavaScript, including the server code (Node.js), productivity apps, 3D games, robots, IoT devices.
Development of a project during the 16 weeks bootcamp, simulating a business environment. Project for the fictional company Rocket Elevators, the project is developed alternating between individual work and team work according to the week, with weekly Sprints and Scrums.
Agile methods (Kanban, Sprints, Scrum) REST, Json JavaScript GraphQl Ruby on Rails, C#, HTML, Bootstrap MySQL, Postgres
REST API using C # and .NET Core allow requesting Rocket Elevators systems to access and manipulate textual representations of web resources through a set of stateless, predefined uniform operations.
The Mobile application will allow teams in the field to interact with the Rocket Elevators information system, only emplyee can access to the sytem. Android and IOS version.
If you have any questions feel free to contact me
HIRE ME


Every so often, and a lot less often than he used to, Woody Allen makes a movie for the masses. "Small Time Crooks" is such a picture. Free of the angst and stylization of many of Allen's recent films, it's a cheerfully silly caper comedy that mixes in a little of "My Fair Lady" and a lot of "The Honeymooners" as it breezes along.
There's quite a bit of Ralph and Alice Kramden in Ray and Frenchy Winkler, the couple at the center of "Crooks," and Allen and Tracey Ullman spar and slander each other with an almost maniacal glee. Ray is an ex-con who dreams of one last heist; Frenchy, a former stripper (!) turned hard-bitten manicurist would rather play it safe. When Ray accuses her of always shooting down his dreams, Frenchy snarls, "You get the kind of dreams people get after they put opium in their brownies."
But eventually she's persuaded to participate in Ray's latest scheme, which involves opening a cookie shop as a cover for a crime. While Ray and his cronies try to tunnel from the basement of the shop into a nearby bank, Frenchy whips up batch after batch of her unusual taste treats (Chicken Chip and Tuna Mint are a couple of her flavors). The scheme goes awry when the cookies become, quite unexpectedly, the latest culinary craze. So Ray and Frenchy find themselves in the money, although not in the way they anticipated.
Getting refinement and culture is not so simple, even after Frenchy employs art dealer David (Hugh Grant) to teach her the basics of being a socialite. Soon she's memorizing the dictionary and using her new vocabulary all too well. "I must asseverate she deserves accolades," Frenchy tells her fellow concertgoers after seeing a cellist perform.
Allen essentially fades into the background and lets Ullman carry the picture. Good decision: She's magnificent here, whether making wisecracks in her best Brooklynese accent (of Ray's dopey friends she notes, "they never finished kindergarten because they got drafted") or flirting hopefully with the artsy crowd and wondering why they snicker at her leopard-print outfits and her apartment filled with gold-plated garbage. Allen's films are routinely scouted for Oscar-quality acting (last year's "Sweet and Lowdown" garnered nominations for Sean Penn and Samantha Morton) and hopefully Ullman's work will not be forgotten by the Academy.
The other standout performance here comes from veteran writer-director Elaine May as Frenchy's astonishingly simple-minded sister Mae, who has an uncanny knack for screwing up the simplest tasks. Mae's face is almost always slightly tense, as if Regis Philbin was just about to ask her the deciding question on "Who Wants To Be A Millionaire?", and May gives her a delightfully twisted voice that makes even throwaway lines sound like little jewels.
Allen fans shouldn't head for "Small Time Crooks" expecting the moral complexities of "Crimes and Misdemeanors" or the poignant soul-searching of "Another Woman." Those were seven-course meals while this is nothing more than a scrumptious dessert, one that should satisfy the appetite of anyone looking for laughs. James Sanford
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Money Play. How should Red play 41?
pips Red=159 White=124
(CorrectAnswer= 0/0, ErrorScore= 0)
Red needs to get his checkers working and that stack on the 6-pt must be developed.
Owning the cube means Red is in the game until the end and he should try to have multiple game plan strategies. The best play is b/21, 6/5, aiming for a back game or a fast-developing forward position.
Bar/21, 22/21 is far too passive and makes White’s game easy to play. That play is a bad error. Bar/21, 4/3 is the second-best play. It wins fewer games but also loses fewer gammons than bar/21, 6/5.
Owning the cube means Red is in the game until the end and he should try to have multiple game plan strategies. The best play is b/21, 6/5, aiming for a back game or a fast-developing forward position.
Bar/21, 22/21 is far too passive and makes White’s game easy to play. That play is a bad error. Bar/21, 4/3 is the second-best play. It wins fewer games but also loses fewer gammons than bar/21, 6/5.
1. Cubeful 2-ply bar/21 6/5 Eq.: -0.240 0.418 0.100 0.005 - 0.582 0.310 0.013 2. Cubeful 2-ply bar/21 4/3 Eq.: -0.269 (-0.029) 0.384 0.086 0.004 - 0.616 0.251 0.007 3. Cubeful 2-ply bar/21 22/21 Eq.: -0.293 (-0.053) 0.378 0.086 0.004 - 0.622 0.262 0.006 4. Cubeful 0-ply bar/21 8/7 Eq.: -0.396 (-0.156) 0.360 0.083 0.003 - 0.640 0.312 0.014 5. Cubeful 0-ply bar/21 7/6 Eq.: -0.484 (-0.244) 0.333 0.073 0.003 - 0.667 0.324 0.015


Regex for CORS response headers Burp Suite
Match: Access-Control-Allow-Origin:(.*?)$
Replace: Access-Control-Allow-Origin: *
Match: Access-Control-Allow-Methods:(.*?)$
Replace: Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Match: Access-Control-Allow-Headers:(.*?)$


--- layout: post permalink: truckerdeluxecom.html Tags: Array NameOfCoupon: TruckerDeluxe.com Cash Back Summary: See our TruckerDeluxe.com Coupon Code, TruckerDeluxe.com Rebate, TruckerDeluxe.com Promo Code, TruckerDeluxe.com Discount, TruckerDeluxe.com Coupon Cash Back Rebate here. MetaKeywords: TruckerDeluxe.com Coupon Code, TruckerDeluxe.com Rebate, TruckerDeluxe.com Promo Code, TruckerDeluxe.com Cash Back Rebate, TruckerDeluxe.com Discount, TruckerDeluxe.com Coupon Image: images/26755.gif LinkURL: http://www.shareasale.com/r.cfm?b=223543&u=412002&m=26755 affiliate_url_link: http://www.icouponblog.com/jane.php?id=106 thesis_readmore: See the TruckerDeluxe.com Coupon thesis_thumb: http://www.icouponblog.com/tn.php?merchantURL=truckerdeluxe.com Title: Save 7.5% - TruckerDeluxe.com Coupon Code for truckerdeluxe.com. TruckerDeluxe.com Rebate & Discount thesis_description: Our TruckerDeluxe.com Discount Coupon Code for truckerdeluxe.com. We have the best TruckerDeluxe.com Rebate anywhere. thesis_keywords: TruckerDeluxe.com, TruckerDeluxe.com Coupon Code, TruckerDeluxe.com Discount, TruckerDeluxe.com Rebate product_name: TruckerDeluxe.com hop_url: http://www.icouponblog.com/hop.php?id=106 ---
Express your own unique style with confidence. Get the latest cutting edge designs in urban, skate, surf and street fashions. TruckerDeluxe.com offers the coolest clothing and accessories for men. Their diverse line of apparel comes in all colors, sizes and price ranges. You won’t be able to resist the unique and truly original pieces TruckerDeluxe.com provides. You’ll have to see them to believe them, and wear them to show them off. Whether you’re shopping for yourself or buying a present for a friend, you’ll find every style, every latest trend.
TruckerDeluxe.com features shoes, clothes and accessories form the hippest designers. You can choose from your favorites like Nike, Obey, Jedidiah, Burton and Creative Recreation to name just a few. What’s more? You can get yourself a new set of wheels with their Sector 9 and Element boards. Don’t wait. Click on the TruckerDeluxe.com Coupon above to get yourself some awesome apparel and accessories. And save some green…your wallet will thank you.
Maybe you need a new set of headphones to crank up the tunage. Perhaps some aviators or a new watch. TruckerDeluxe.com has what you want. And the TruckerDeluxe.com will help you get it. So go on, walk into that room with your spanking new threads and make ‘em jealous. The only thing you’ll love more than your look is the amount of money you saved with the TruckerDeluxe.com Discount and Rebate.


User Manual 25 November 2013.
Author: Johan van der Knijff, KB / National Library of the Netherlands; contact<EMAIL_ADDRESS>Jpwrappa is a Python tool that provides an easy-to-use interface to the j2kdriver application that is part of Aware’s JPEG 2000 SDK. Aware's encoder is very feature rich, however since all encoding options are provided as command-line arguments, this may result in excessively lengthy command lines. Here's an example:
j2kdriver --set-input-image balloon.tif --set-output-type JP2 --set-output-j2k-xform I97 5 --set-output-j2k-color-xform YES --set-output-j2k-progression-order RPCL --set- output-j2k-tile-size 1024 1024 --set-output-j2k-codeblock-size 6 6 --set-output-j2k- channel-precinct-size ALL 0 7 7 --set-output-j2k-channel-precinct-size ALL 1 7 7 -- set-output-j2k-channel-precinct-size ALL 2 7 7 --set-output-j2k-channel-precinct-size ALL 3 7 7 --set-output-j2k-channel-precinct-size ALL 4 8 8 --set-output-j2k-channel- precinct-size ALL 5 8 8 --set-output-j2k-layers 8 --set-output-j2k-layer-ratio 0 2560 --set-output-j2k-layer-ratio 1 1280 --set-output-j2k-layer-ratio 2 640 --set-output- j2k-layer-ratio 3 320 --set-output-j2k-layer-ratio 4 160 --set-output-j2k-layer-ratio 5 80 --set-output-j2k-layer-ratio 6 40 --set-output-j2k-layer-ratio 7 20 --set- output-j2k-error-resilience ALL --set-output-jp2-add-metadata-box XML balloon.xmp -- output-file-name balloon.jp2
Although it’s entirely possible to call the encoder from a batch file or shell script in the above way, this is not always a practical solution: it is quite hard to keep an overview of what’s going on, and the meaning of most of the arguments is not immediately obvious. Moreover, any modifications of existing sets of options will introduce the risk of something going wrong, and this may go completely unnoticed.
The jpwrappa software solves this problem by putting all encoding options in a formatted XML file. These files can be re-used, and may include comments (making them largely self-documenting). The wrapper software simply parses the options in the XML file, uses this information to create the Aware command line, and finally launches the encoder. Optionally metadata from a source image may be extracted from the source image, and embedded as an XML box in the JP2 (this functionality requires ExifTool).
Using jpwrappa, the sequence of command-line arguments in the example above can be reduced to something as simple as this:
jpwrappa.py balloon.tif balloon.jp2 –p demoAccesslossy.xml
Jpwrappa can either be used as a command-line tool, or as an importable module that can be called from other Python scripts.
The development of jpwrappa was partially funded by the EU FP 7 project SCAPE (SCAlabable Preservation Environments). More information about SCAPE can be found here:
Jpwrappa is licensed under the Apache License, Version 2.0. (the "License"). You may obtain a copy of the License at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Before you start installing jpwrappa, make sure you have a licensed copy of Aware's JPEG 2000 SDK installed on your system. Optionally, you may also want to install Exiftool, which is available for free.
To be written.
Simply download the package and open in with your package installer (double-clicking usually does the trick). Alternatively you may wish to use the command terminal, in which case you can use apt-get, e.g.:
sudo apt-get install jpwrappa_0.2.0_amd64.deb
Jpwrappa wraps around the Aware j2kdriver tool and (optionally) ExifTool as well. The locations of these tools are defined in a configuration file (config.xml), which is located in the directory /etc/jpwrappa. It looks like this:
<?xml version="1.0"?>
<!-- jpwrappa configuration file.
-->
<config>
<!-- location of Aware j2kdriver application -->
<j2kDriverApp>/usr/bin/j2kdriver</j2kDriverApp>
<!-- location of ExifTool application -->
<exifToolApp>/usr/bin/exiftool</exifToolApp>
</config>
The default values of j2kDriverApp and exifToolApp will probably be fine for most situations, but if these binaries are located somewhere else on your system you can just update the configuration file accordingly. Make sure not to wrap these file paths in quotation marks, even if they contain spaces, as Python's os.path library doesn't appear to like this. Note that in order to make any changes to the configuration file you will need to open it as administrator!
Download the zip file (e.g. jpwrapppa_0.2.0_win32.zip) and extract it to any directory you like. Jpwrappa wraps around the Aware j2kdriver tool and (optionally) ExifTool as well. The locations of these tools are defined in a configuration file (config.xml), which is located in the jpwrappa installation directory. It looks like this:
<?xml version="1.0"?>
<!-- jpwrappa configuration file. This file MUST be in the same directory as jpwrappa.py/ jpwrappa.exe!
-->
<config>
<!-- location of Aware j2kdriver application -->
<j2kDriverApp>C:\Program Files (x86)\Aware\JPEG2000_SDK\demo\j2kdriver.exe</j2kDriverApp>
<!-- location of ExifTool application -->
<exifToolApp>C:\exiftool\exiftool.exe</exifToolApp>
</config>
Update the values of j2kDriverApp and exifToolApp to the locations of these tools on your machine. Make sure not to wrap these file paths in quotation marks, even if they contain spaces, as Python's os.path library doesn't appear to like this.
Optionally, you may also want to include the directory containing jpylyzer.exe in your Windows Path environment variable. This will allow you to execute jpwrappa from any directory without having to type the full path each time.
usage: jpwrappa [-h] [-v] [-p PROFILE] [-s SUFFIX] [-m] [-l]
imageIn imageOut
Convert TIFF to JP2 using the default profile:
jpwrappa balloon.tif balloon.jp2
As above, but using the demoAccessLossy profile:
jpwrappa balloon.tif balloon.jp2 -p demoAccessLossy.xml
Convert all TIFF images in working directory to JP2, adding suffix _test to output JP2s:
jpwrappa *.tif . -p demoAccessLossy.xml -s _test
(In this case, balloon.tif will be converted to balloon_test.jp2.)
As above, but generate XML-formatted log file:
jpwrappa *.tif . -p demoAccessLossy.xml -s _test -l > log.xml
The jpwrappa functions can also be imported in (and used by) other Python scripts. This involves 2 steps:
Import jpwrappa in your own script by adding the following line at the top:
import jpwrappa
Now call the imagesToJP2 function, which uses the following syntax:
imagesOut,log=jpwrappa.imagesToJP2(imagesIn,fileOut,jp2Profile,suffixOut,flagMetadata)
The JP2 profile contains the encoding settings. The minimal example below shows the basic layout of the file:
<?xml version="1.0"?>
<options>
<aware>
<!--
jpwrappa default profile: Set output format to JP2 and use Aware defaults for everything else.
-->
<set-output-type>JP2</set-output-type>
<!--
Sets output format to JP2
-->
</aware>
</options>
So the file's root element is options, which has a child element aware which contains the encoding options. The naming of these options is based on the naming used in Chapter 9 (‘Command Line Tools’) of the Aware manual, using the following naming convention:
--aware-option value
<aware-option>value</aware-option>
-- set-output-j2k-progression-order RPCL
<set-output-j2k-progression-order>RPCL</set-output-j2k-progression-order>
--set-output-j2k-xform I97 5
<set-output-j2k-xform>I97 5</set-output-j2k-xform>
Note that the order in which Aware's options are given on the command line influences the results. Jpwrappa always uses the exact order that is used in the profile. Note that you can use XML comments to annotate your profiles and make them self-documented.
The jpwrappa installation includes a collection of example profiles for lossless and lossy encoding. Linux users who are using the Debian package of jpwrappa can find these profiles in the /etc/jpwrappa/profiles directory. Windows users should look for the profiles directory in the installation root. See Annex 1 of this User Manual (below). Annex 2 lists the full XML of one example.
You can generate detailed logging information on each converted image using the -l switch.
Each log entry contains the following information:
As an example, below is a log entry for an image that could not be converted (in fact this was a zero-byte file):
<?xml version='1.0' encoding='ascii'?>
<jpwrappa>
<image>
<time>Tue Oct 02 17:45:01 2012</time>
<imageIn>E:\testjpwrappa\empty.tif</imageIn>
<imageOut>E:\testjpwrappa\empty.jp2</imageOut>
<jp2Created>False</jp2Created>
<exifExitStatus>0</exifExitStatus>
<exifStdOut />
<exifStdErr />
<awareExitStatus>0</awareExitStatus>
<awareStdOut />
<awareStdErr>Error: unable to read `empty.tif'
Warning: aw_j2k_get_output_image returned error code 203
</awareStdErr>
<profile>F:\johan\pythonCode\jpwrappa\profiles\default.xml</profile>
</image>
</jpwrappa>
If imageIn refers to an image / a set of images that doesn't exist, jpwrappa will exit with an error message. For example:
Error: E:\TIFFSamples\dpp_colour_00990.tiff does not exist!
If the -l switch was used no error log is reported in this special case! This behaviour may change in future versions.
Especially in case of the batch processing on multiple images it is important that one or two ‘bad’ input images do not cause a crash of the whole batch process. Perhaps even more importantly, any errors should be traceable. One problem is that the exit status of the Aware j2kdriver application is not a reliable indicator for establishing whether an image was converted successfully. Jpwrappa tries to handle any problems with ExifTool and/or the j2kdriver application in the following way:
Depending on the operating system that is used, there is a limit on the number of characters that can be used in a command line. This is important, as jpwrappa works by transforming the information in the options file to a valid Aware command line. For Windows XP and more recent, the maximum number of characters equals 8191; for older versions a limit of 2047 characters applies [1]. On Linux/Unix systems, the actual value depends on the specific flavour, but in general it will exceed the Windows value by several orders of magnitude. Just to give an indication: the example command line that is given in the introduction in this User Manual is made up of 1067 characters. So, these limitations are unlikely to cause any major problems, unless extremely long file paths are used for the in- and output files.
This Annex documents example profiles that are supplied with jpwrappa. Linux users who are using the Debian package of jpwrappa can find these profiles in the /etc/jpwrappa/profiles directory. Windows users should look for the profiles directory in the installation root.
Synopsis: minimalistic profile that produces JP2s according to the default settings of Aware's encoder (lossy compression). Note that this is also the default profile that is used by jpwrappa (i.e. if the user doesn't specify anything with the -p
option).
Synopsis: lossless compression with error resilience features.
| Parameter | Value |
|---|---|
| File format | JP2 (JPEG 2000 Part 1) |
| Compression type | Lossless (reversible 5-3 wavelet filter) |
| Colour transform | Yes (only for colour images) |
| Number of decomposition levels | 5 |
| Progression order | RPCL |
| Tile size | 1024 x 1024 |
| Code block size | 64 x 64 (26 x 26) |
| Number of quality layers | 1 |
| Target compression ratio | N/A |
| Error resilience | Start-of-packet headers; end-of-packet headers; segmentation symbols |
| Codestream comment | demoMasterLossless |
Synopsis: lossy compression with 20:1 target compression ratio, 8 quality layers, precincts and error resilience features.
| Parameter | Value |
|---|---|
| File format | JP2 (JPEG 2000 Part 1) |
| Compression type | Lossy (irreversible 9-7 wavelet filter) |
| Colour transform | Yes (only for colour images) |
| Number of decomposition levels | 5 |
| Progression order | RPCL |
| Tile size | 1024 x 1024 |
| Code block size | 64 x 64 (26 x 26) |
| Precinct size | 256 x 256 (28) for 2 highest resolution levels; 128 x 128 (27) for remaining resolution levels |
| Number of quality layers | 8 |
| Target compression ratio layer 1 | 2560:1 |
| Target compression ratio layer 2 | 1280:1 |
| Target compression ratio layer 3 | 640:1 |
| Target compression ratio layer 4 | 320:1 |
| Target compression ratio layer 5 | 160:1 |
| Target compression ratio layer 6 | 80:1 |
| Target compression ratio layer 7 | 40:1 |
| Target compression ratio layer 8 | 20:1 |
| Error resilience | Start-of-packet headers; end-of-packet headers; segmentation symbols |
| Codestream comment | demoAccessLossy |
Synopsis: lossy compression with 50:1 target compression ratio, 6 quality layers, precincts and error resilience features (profile used for creation of jpylyzer test files).
| Parameter | Value |
|---|---|
| File format | JP2 (JPEG 2000 Part 1) |
| Compression type | Lossy (irreversible 9-7 wavelet filter) |
| Colour transform | Yes (only for colour images) |
| Number of decomposition levels | 5 |
| Progression order | RPCL |
| Tile size | 1024 x 1024 |
| Code block size | 64 x 64 (26 x 26) |
| Precinct size | 256 x 256 (28) for 2 highest resolution levels; 128 x 128 (27) for remaining resolution levels |
| Number of quality layers | 6 |
| Target compression ratio layer 1 | 1600:1 |
| Target compression ratio layer 2 | 800:1 |
| Target compression ratio layer 3 | 400:1 |
| Target compression ratio layer 4 | 200:1 |
| Target compression ratio layer 5 | 100:1 |
| Target compression ratio layer 6 | 50:1 |
| Error resilience | Start-of-packet headers; end-of-packet headers; segmentation symbols |
| Codestream comment | demoAccessLossy |
Synopsis: lossless profile based on Harvard College Library 'recipe' by Bill Comstock, described in this blog post.
Synopsis: lossy profile based on Harvard College Library 'recipe' by Bill Comstock, described in this blog post. Defines target compression as Peak Signal-to-Noise Ratio (PSNR) of 46 dB.
Synopsis: same as demoMasterLossless.xml (see above), but with different codestream comment that refers to KB-specific specifications.
Synopsis: same as demoAccessLossy.xml (see above), but with different codestream comment that refers to KB-specific specifications.
The code below corresponds to the demoMasterLossless.xml example described in Annex 1 of this document.
<?xml version="1.0"?>
<options>
<aware>
<!--
****
jpwrappa options file
Description: demo lossless JP2 encoding settings for preservation masters
Author: Johan van der Knijff
****
-->
<set-output-j2k-add-comment>demoMasterLossless TEXT MAIN</set-output-j2k-add-comment>
<!--
Inserts reference to this options profile as codestream comment
-->
<set-output-type>JP2</set-output-type>
<!--
Sets output format to JP2
-->
<set-output-j2k-xform>R53 5</set-output-j2k-xform>
<!--
Sets compression type and number of decomposition levels
- First argument: compression type:
* R53: reversible 5-3 wavelet filter
* I97: irreversible 9-7 filter
- Second argument: number of decomposition levels (dl)
Note that this controls the number of resolution levels (rl): rl = dl + 1
-->
<set-output-j2k-color-xform>YES</set-output-j2k-color-xform>
<!--
Performs color rotation from RBG to YUV color spaces if input image
is in RGB format.
-->
<set-output-j2k-progression-order>RPCL</set-output-j2k-progression-order>
<!--
Sets progression order
-->
<set-output-j2k-tile-size>1024 1024</set-output-j2k-tile-size>
<!--
Sets tile size
-->
<set-output-j2k-codeblock-size>6 6</set-output-j2k-codeblock-size>
<!--
Sets code block size: not actual block size but its base 2 logarithm!
Value of 6 corresponds to code block size 64 (2^6)
-->
<set-output-j2k-ratio>0</set-output-j2k-ratio>
<!--
Sets compression ratio. A ratio of 0 indicates that all the quantized
data should be included in the image. This creates lossless images
if the R53 wavelet is chosen using set-output-j2k-xform
-->
<set-output-j2k-error-resilience>ALL</set-output-j2k-error-resilience>
<!--
Activates all error resilience features: start and end-of packet markers
+ segmentation symbols
-->


Fabric8-analytics charts for repository ${repository}
Code coverage
Cyclomatic complexity
Maintainability index
Dead code
Common errors
Author: Pavel Tisnovsky <
<EMAIL_ADDRESS>>
Generated on: ${generated_on}


Helena's Notes
Lesson 1: Web Basics and Getting Started
Web Basics
The Web is a collection of HTML documents.
HTML stands for Hyper Text Markup Language.
URLs are a series of hyperlinks that connect the HTML documents together.
Browser makes requests via the Internet to Servers using HTTP, the main protocol of the Web. For example, IE, FF, & Chrome.
 (They are tags!)
Together, an opening and closing tag are called an element.
Communicating with Computers
When programmers say that computers are "stupid" they're not insulting computers. They are addressing an important point about how computers understand the instructions that human programmers give them. For example, if you do not have an end tag, the command of the opening tag will continute until you close it.
Links to Connect HTML Documents to Any Other Documents on the Internet (aka HTML Attributes)
derp
HREF = hypertext reference
To insert images you would use the following formula:


Class HeightMap
Represents an HeightMap.
| Constructor Attributes | Constructor Name and Description |
|---|---|
|
HeightMap(opt_pitch, opt_ratio, opt_width, opt_height)
Creates a new random height map generator object.
|
| Field Attributes | Field Name and Description |
|---|---|
| <private> <constant> |
Borders of the working height map to exclude from final result,
because there are not processed in the smooth function.
|
|
Result array with the world map.
|
|
| <private> <constant> |
Set maximum size for the side value of the working square.
|
| <private> <constant> |
Set minimum size for the side value of the working square.
|
| <private> |
Maximum elevation for current map [0 to p_pitch].
|
| <private> |
Indicates how much height difference between 2 points we can have.
|
| <private> |
Size of the current map [0 to p_side], [0 to p_side].
|
| Method Attributes | Method Name and Description |
|---|---|
|
copy(source, from_x, from_y)
Copy data from another map to the current object at x, y coordinates.
|
|
|
crop(opt_width, opt_height)
Crop the current map according to specific size.
|
|
|
doMap(p_width, p_height, bInitialize)
Build a map (size is 0-based).
|
|
|
fillBorders(value, borderwidth)
Initialize each border of the map with the specified value.
|
|
|
fillCorners(overwrite)
Set random value for each corner, needed before calling the generator.
|
|
| <private> |
floor()
Shorcut to Math function.
|
|
initialize(h)
Initialize the item array before calling the generator method.
|
|
|
make(x1, y1, x2, y2, xm, ym)
Generate a random map.
|
|
|
makeMap()
This is a shortcut to call function make() with default parameters.
|
|
| <private> |
p_addDelta(avg, delta)
Return a value added with a random delta.
|
| <private> |
p_randomMinMax(min, max)
Generate a random value between min and max (both included), result is floored.
|
|
setAleaSeed(opt_seed)
Allow you to set a seed used to regenerate identical maps over multiple calls.
|
|
|
setSide(opt_width, opt_height)
Calculate the side of the "square" used to generate the random heightmap.
|
|
|
smooth()
Set cells height to be closer to other adjacent cells.
|
Class Detail
HeightMap(opt_pitch, opt_ratio, opt_width, opt_height)
Creates a new random height map generator object.
- Parameters:
- {number} opt_pitch Optional, Default: 8
- Maximum elevation to be used. Items in the map will have a value between 0 and opt_pitch.
- {number} opt_ratio Optional, Default: 3.1
- Ratio to be used.
- {number} opt_width Optional, Default: 127
- Width of the map to be generated.
- {number} opt_height Optional, Default: 127
- Height of the map to be generated.
- See:
- How to use the HeightMap object?
Field Detail
<private> <constant>
{number}
CROP_SIZE
Borders of the working height map to exclude from final result,
because there are not processed in the smooth function.
{Array}
item
Result array with the world map.
<private> <constant>
{number}
MAX_SIDE
Set maximum size for the side value of the working square.
<private> <constant>
{number}
MIN_SIDE
Set minimum size for the side value of the working square.
<private>
{number}
p_pitch
Maximum elevation for current map [0 to p_pitch].
You will have to adjust the color managment in "jowe-ui" to fit your elevation.
You will have to adjust the color managment in "jowe-ui" to fit your elevation.
<private>
{number}
p_ratio
Indicates how much height difference between 2 points we can have.
Only used in "make" method.
By the way, combined with "p_pitch" (previous property), it allows to obtain very different types of map.
For now 3.1 is around the minimum value to use, below that you could obtain strange map (unmanaged cell display). If you put an higher value, your map will look flattened.
By the way, combined with "p_pitch" (previous property), it allows to obtain very different types of map.
For now 3.1 is around the minimum value to use, below that you could obtain strange map (unmanaged cell display). If you put an higher value, your map will look flattened.
<private>
{number}
p_side
Size of the current map [0 to p_side], [0 to p_side].
Always have to be (N^2)+1 x (N^2)+1 ("diamond square" algorithm. Better looking results with squares). We only need to store it once (p_side = width = height).
Always have to be (N^2)+1 x (N^2)+1 ("diamond square" algorithm. Better looking results with squares). We only need to store it once (p_side = width = height).
Method Detail
copy(source, from_x, from_y)
Copy data from another map to the current object at x, y coordinates.
- Parameters:
- {array} source
- Source array that whose values will replace a part of the internal map array.
- {number} from_x
- X coordinate of the item array to start the copy
- {number} from_y
- Y coordinate of the item array to start the copy
crop(opt_width, opt_height)
Crop the current map according to specific size.
The internal "item" array will then be reduced.
The internal "item" array will then be reduced.
- Parameters:
- {number} opt_width Optional
- Width of the cropped map.
- {number} opt_height Optional
- Height of the cropped map.
doMap(p_width, p_height, bInitialize)
Build a map (size is 0-based).
doMap(5, 10) will return a map with dimension [0 .. 4][0 .. 9] but as we need 2 points to make a cell we'll have 4x9 cells (= 36 true cells displayed).
doMap(5, 10) will return a map with dimension [0 .. 4][0 .. 9] but as we need 2 points to make a cell we'll have 4x9 cells (= 36 true cells displayed).
var oMap = new HeightMap(99, 0.54); oMap.doMap(14, 34);
- Parameters:
- {number} p_width
- {number} p_height
- {boolean} bInitialize Optional, Default: true
- Tell to the function to goes through an initialization of the map array. Then will call "SetSide", "initialize" and "fillcorners" with default values.
fillBorders(value, borderwidth)
Initialize each border of the map with the specified value.
The item array should be initialized.
The item array should be initialized.
- Parameters:
- {number} value
- Default height to be applied.
- {number} borderwidth
- Width of the border to apply the value.
fillCorners(overwrite)
Set random value for each corner, needed before calling the generator.
Require the item array to be initialized.
Require the item array to be initialized.
- Parameters:
- {boolean} overwrite
- Indicates if existing values should be overwritten.
<private>
floor()
Shorcut to Math function.
Used to "speed up" calls to Math.floor() function.
Used to "speed up" calls to Math.floor() function.
initialize(h)
Initialize the item array before calling the generator method.
The whole item array is filled with the default value given as parameter.
- Parameters:
- {number} h
- default value given to each item.
make(x1, y1, x2, y2, xm, ym)
Generate a random map.
Parameters indicates "top/left", "right/bottom" limits, and "middle" coordinates.
Caution : this function only works with 2^n squares, as it goes recursively with divide by 2.
Parameters indicates "top/left", "right/bottom" limits, and "middle" coordinates.
Caution : this function only works with 2^n squares, as it goes recursively with divide by 2.
- Parameters:
- {number} x1
- x coordinate of the top
- {number} y1
- {number} x2
- {number} y2
- {number} xm
- {number} ym
makeMap()
This is a shortcut to call function make() with default parameters.
All necessary variables should have been initialized.
The "item" array will be set to "-1" if not already done.
All necessary variables should have been initialized.
The "item" array will be set to "-1" if not already done.
<private>
{number}
p_addDelta(avg, delta)
Return a value added with a random delta.
If the delta is more than 0, it adds to "avg" a random value between "-delta" and "+delta".
In fact it sets the height between two points. The closer there are, the lower the delta will be. The function ensure that the result is positive and less than the pitch (max height).
If the delta is more than 0, it adds to "avg" a random value between "-delta" and "+delta".
In fact it sets the height between two points. The closer there are, the lower the delta will be. The function ensure that the result is positive and less than the pitch (max height).
- Parameters:
- {number} avg
- {number} delta
- Returns:
- {number}
<private>
{number}
p_randomMinMax(min, max)
Generate a random value between min and max (both included), result is floored.
- Parameters:
- {number} min
- {number} max
- Returns:
- {number} Random value.
setAleaSeed(opt_seed)
Allow you to set a seed used to regenerate identical maps over multiple calls.
- Parameters:
- {*} opt_seed Optional
- Seed used to generate the current map.
{number}
setSide(opt_width, opt_height)
Calculate the side of the "square" used to generate the random heightmap.
- Parameters:
- {number} opt_width Optional
- {number} opt_height Optional
- Returns:
- {number} calculated side to be used
smooth()
Set cells height to be closer to other adjacent cells.


VSL // Ready For Some Katy Perry Football?
* Bill Nye the Science Guy weighs in
today’s Very Short List:
culture 30 Jan 2015
Alexa Jaccarino is the editor of Very Short List, and she loves to hear from you! TWITTER
Subscribe
* A round-up of all the Super Bowl ads
* Ahead of the big game, Fortune chatted with
http://link.nyobserver.com/516ca68465217dc6e1b9a3a62884r.24yw/TvnrKi0WTdwTHwxwC2120
delightful e-mail that shares
cultural gems from a
different curator every day.
If you have any problems reading this e-mail, click here
http://link.nyobserver.com/516ca68465217dc6e1b9a3a62884r.24yw/UHyHCJsf7NZSKXrPC4a68
Subscribe
Forward
My Account
Unsubscribe
tech 26 Jan 2015
Justin Hendrix looks at a few early stage tech startups born at NYC universities.
style 23 Jan 2015
Amy Levin shakes things up!
design 21 Jan 2015
Diane Phamon the designers to watch now.
Editorial Policy
Privacy Policy
Contact Us
Press
Terms + Conditions
very fine print: ©2015
Observer VSL LLC.
321 West 44th Street, 6th Floor
New York, NY 10036 USA
All rights reserved.
Questions?<PHONE_NUMBER>.
This message was intended for<EMAIL_ADDRESS>If you believe this has been sent to you in error, please safely unsubscribe


--- layout: example categories: example/v1.0.0 version: v1.0.0 title: Leaflet Hash description: When a map is panned or zoomed, add the coordinates to the URL. tags: - plugins ---


| Home | Trees | Indices | Help |
|
|---|
|
|
object --+ | SparkContext
Main entry point for Spark functionality. A SparkContext represents the connection to a Spark cluster, and can be used to create RDDs and broadcast variables on that cluster.
| Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from |
| Class Methods | |||
|
| Properties | |
|
Inherited from |
| Method Details |
Create a new SparkContext. At least the master and app name should be set, either through the named parameters here or through C{conf}. @param master: Cluster URL to connect to (e.g. mesos://host:port, spark://host:port, local[4]). @param appName: A name for your job, to display on the cluster web UI. @param sparkHome: Location where Spark is installed on cluster nodes. @param pyFiles: Collection of .zip or .py files to send to the cluster and add to PYTHONPATH. These can be paths on the local file system or HDFS, HTTP, HTTPS, or FTP URLs. @param environment: A dictionary of environment variables to set on worker nodes. @param batchSize: The number of Python objects represented as a single Java object. Set 1 to disable batching or -1 to use an unlimited batch size. @param serializer: The serializer for RDDs. @param conf: A L{SparkConf} object setting Spark properties. @param gateway: Use an existing gateway and JVM, otherwise a new JVM will be instatiated. >>> from pyspark.context import SparkContext >>> sc = SparkContext('local', 'test') >>> sc2 = SparkContext('local', 'test2') # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... ValueError:...
|
Set a Java system property, such as spark.executor.memory. This must must be invoked before instantiating SparkContext. |
Default level of parallelism to use when not given by user (e.g. for reduce tasks)
|
Default min number of partitions for Hadoop RDDs when not given by user
|
Distribute a local Python collection to form an RDD. >>> sc.parallelize(range(5), 5).glom().collect() [[0], [1], [2], [3], [4]] |
Read a text file from HDFS, a local file system (available on all nodes), or any Hadoop-supported file system URI, and return it as an RDD of Strings. >>> path = os.path.join(tempdir, "sample-text.txt") >>> with open(path, "w") as testFile: ... testFile.write("Hello world!") >>> textFile = sc.textFile(path) >>> textFile.collect() [u'Hello world!'] |
Read a directory of text files from HDFS, a local file system (available on all nodes), or any Hadoop-supported file system URI. Each file is read as a single record and returned in a key-value pair, where the key is the path of each file, the value is the content of each file. For example, if you have the following files: hdfs://a-hdfs-path/part-00000 hdfs://a-hdfs-path/part-00001 ... hdfs://a-hdfs-path/part-nnnnn Do (a-hdfs-path/part-00000, its content) (a-hdfs-path/part-00001, its content) ... (a-hdfs-path/part-nnnnn, its content) NOTE: Small files are preferred, as each file will be loaded fully in memory. >>> dirPath = os.path.join(tempdir, "files") >>> os.mkdir(dirPath) >>> with open(os.path.join(dirPath, "1.txt"), "w") as file1: ... file1.write("1") >>> with open(os.path.join(dirPath, "2.txt"), "w") as file2: ... file2.write("2") >>> textFiles = sc.wholeTextFiles(dirPath) >>> sorted(textFiles.collect()) [(u'.../1.txt', u'1'), (u'.../2.txt', u'2')] |
Build the union of a list of RDDs. This supports unions() of RDDs with different serialized formats, although this forces them to be reserialized using the default serializer: >>> path = os.path.join(tempdir, "union-text.txt") >>> with open(path, "w") as testFile: ... testFile.write("Hello") >>> textFile = sc.textFile(path) >>> textFile.collect() [u'Hello'] >>> parallelized = sc.parallelize(["World!"]) >>> sorted(sc.union([textFile, parallelized]).collect()) [u'Hello', 'World!'] |
Broadcast a read-only variable to the cluster, returning a Broadcast object for reading it in distributed functions. The variable will be sent to each cluster only once. |
Create an Accumulator with the given initial value, using a given AccumulatorParam helper object to define how to add values of the data type if provided. Default AccumulatorParams are used for integers and floating-point numbers if you do not provide one. For other types, a custom AccumulatorParam can be used. |
Add a file to be downloaded with this Spark job on every node. The
To access the file in Spark jobs, use SparkFiles.get(path) to find its download location. >>> from pyspark import SparkFiles >>> path = os.path.join(tempdir, "test.txt") >>> with open(path, "w") as testFile: ... testFile.write("100") >>> sc.addFile(path) >>> def func(iterator): ... with open(SparkFiles.get("test.txt")) as testFile: ... fileVal = int(testFile.readline()) ... return [x * 100 for x in iterator] >>> sc.parallelize([1, 2, 3, 4]).mapPartitions(func).collect() [100, 200, 300, 400] |
Add a .py or .zip dependency for all tasks to be executed on this
SparkContext in the future. The |
Set the directory under which RDDs are going to be checkpointed. The directory must be a HDFS path if running on a cluster. |
Assigns a group ID to all the jobs started by this thread until the group ID is set to a different value or cleared. Often, a unit of execution in an application consists of multiple Spark actions or jobs. Application programmers can use this method to group all those jobs together and give a group description. Once set, the Spark web UI will associate such jobs with this group. The application can use SparkContext.cancelJobGroup to cancel all running jobs in this group. >>> import thread, threading >>> from time import sleep >>> result = "Not Set" >>> lock = threading.Lock() >>> def map_func(x): ... sleep(100) ... raise Exception("Task should have been cancelled") >>> def start_job(x): ... global result ... try: ... sc.setJobGroup("job_to_cancel", "some description") ... result = sc.parallelize(range(x)).map(map_func).collect() ... except Exception as e: ... result = "Cancelled" ... lock.release() >>> def stop_job(): ... sleep(5) ... sc.cancelJobGroup("job_to_cancel") >>> supress = lock.acquire() >>> supress = thread.start_new_thread(start_job, (10,)) >>> supress = thread.start_new_thread(stop_job, tuple()) >>> supress = lock.acquire() >>> print result Cancelled If interruptOnCancel is set to true for the job group, then job cancellation will result in Thread.interrupt() being called on the job's executor threads. This is useful to help ensure that the tasks are actually stopped in a timely manner, but is off by default due to HDFS-1208, where HDFS may respond to Thread.interrupt() by marking nodes as dead. |
Get a local property set in this thread, or null if it is missing. See setLocalProperty |
Cancel active jobs for the specified group. See SparkContext.setJobGroup for more information. |
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Fri Jul 4 18:52:26 2014 | http://epydoc.sourceforge.net |


Computer-Controlled Machining
this week assignment is to make something big using the CNC machine and plywood or MDF
At open dot we have a Shopbot with an operating area bout 3x2 meter ( called here "the big fresa")
We also have a panel 12mm thick of plywood
What I'm going to make is a bonbonnières stand for my sister's wedding.
I'm going to make this in press-fit and joint without glue or nails, so it can be mounted and dismounted easily
we make a briefing before using the CNC machine about its usage and the role to a properly use.
we learn about the upcut, downcut, conventional direction of the cut or inverse direction,
the Kerf of the bit, the various type of the bit and the various style of the cut;
we see the operation to change bits and the role to operate safety with the machine.
An important thing is to fix properly the plywood panel to the sacrificial bed (a MDF panel used as base of the cut area, this is going to be carved during the cut process for make a clean cut through the whole thickness of the panel) of the machine.
We use some wood screw and a electric screwdriver, is important to choose a place where the machine have no cut to perform, although the bit of the CNC will be really damaged if it find the screw in his passage.
I used rhino to draw my model.
during the drawing process I make some attention to the fit border to make a clean joint between the pieces.
considering the fact we use a round bit to perform the cut we have to know that is impossible to make sharp border if we make an inside cut.
to make the all part fit there are 2 ways one is to sandpaper the border of the part to fit to make it rounded (more energy expensive), the other is to make some pocket to permit the bit go deep in the line and make space for the edge of the other pieces.
the strategy is to make a circle near the edge that can be positioned in different ways as the user prefer.
the easiest is to put a semi-circle in the border of the edge.
the one i choose is to make a circle touching the edge with the perimeter with a diameter of 6,5mm that is 0,5mm more than bit thickens.
in this way the cut will remove all the material needed to make a perfect fit with the pieces.
to make the all part fit with a strong resistance we have to make the pocket a little bit less large of the plywood thickness ( 12mm).
We use v-carve for making the cut pattern and setting the tool used. This program accept PDF, SVG, STL, DXF and other format.
Download rar file of DXF
I choose to export in DXF format from rhino.
Is not important to make a good displacement of the pieces in the cad used to draw because v-carve make all the closed line movable so is easy to place them directly in the work plane.
V-carve have also a utility to make and auto calculation of the best orientation and positioning of the pieces to make the best cut and to waste less material.
you can set the dimension of the workplane, the thickness of the cut, the distance to keep between to pieces and other things.
In the program we have to select what cut to perform inside and what to perform outside, we have to select the tool we used to make the cut (so the program know the shape, the dimension, the speed and other parameter to calculate the pattern), the style of the cut and after we select the order of the cut to perform.
During this step is also possible to put the tabs ( little pieces of uncut wood across the cut to make the catted pieces fixed to the plane so is wont go around and potentially damage or be damaged by the CNC moving); in post processing they can be easily removed by sandpaper or cutter. usually are sufficient 3 tabs for pieces, but it depend on the dimension of the piece; they can be edited in dimension and thickness.
Before start using the machine we have to make the positioning in the start of the workplane and to zero the z axis (for know where the wood is positioned)
The x and y positioning is make "by hand" using the arrow to move the machine on the corner of the plywood panel. for the z axis the machine have a semi-automatic process: we place an aluminium plate under the spindle and on the wood panel, so when the bit touch it make a short-circuit and know there is positioned the panel in the z axis.
Now we can import the pattern we saved before and launch the work using the control panel of the Shopbot,
is better to stay near the CNC to make sure all go in the right way and in case of emergency pause ot stop the process.
During the process I discover that I set a wrong dimension of the wood panel so some pieces comes a little less large, but are not important part and I cut only one another piece.
after the sending process and the assembly all is perfectly fitting and there are also so strong that i can lift the whole structure from the top plane and the structure is holding still and fine.
Here you can find some photos of sending, assembling and final result...
hope my sister will appreciate all the work


Ajax allows you to load other files from your web server while the user
is doing something, without actually refreshing the page
Regular Expression (REGEX)
A regular expression is a pattern of characters that you can then use to see
if a particular string is of aparticular format
i.e, does it contain a particular word? Is it in the format of an email address?


Facilitate cultivate monetize, seize e-services peer-to-peer content integrateAJAX-enabled user-centric strategize. Mindshare; repurpose integrate global addelivery leading-edge frictionless, harness real-time plug-and-play standards-compliant 24/7 enterprise strategize robust infomediaries: functionalities back-end. Killer disintermediate web-enabled ubiquitous empower relationships, solutions, metrics architectures.
Paragraph
Paragraph
Paragraph
Paragraph
Paragraph
Paragraph
Paragraph
Paragraph
Paragraph
Paragraph


The path to the text file containing the list of sources files you want to analyze. Note: This option is not mandatory but allows you to analyze and codecheck specific files.


Over a dozen killed in attack in Thailand's Yala province
Attack by unknown assailants on checkpoint in Muslim-majority province kills 15, wounds five more.
At least 15 people have been killed in an attack on a security checkpoint in southern Thailand, including a police officer and many village defence volunteers, according to an army spokesman.

More:
The attackers, in the province of Yala, also used explosives and scattered nails on roads to delay pursuers.
Colonel Pramote Prom-in, spokesman for the army, said on Wednesday that "12 were killed at the scene, two more died at the hospital and one died this morning". Five others were wounded, he told AFP news agency, adding that the attackers took M-16 rifles and shotguns from the checkpoint.
"This is likely the work of the insurgents," he told Reuters news agency. "This is one of the biggest attack in recent times."
There was no immediate claim of responsibility, however, as is common with such attacks.
Prime Minister Prayut Chan-O-Cha said the perpetrators must "be brought to justice", according to Defence Ministry spokesman Kongcheep Tantravanich.
A decade-old separatist campaign in Thailand's largely ethnic Malay-Muslim provinces of Yala, Pattani, and Narathiwat has killed nearly 7,000 people since 2004, says Deep South Watch, a group that monitors the violence.
The population of the provinces, which belonged to an independent Malay Muslim sultanate before Thailand annexed them in 1909, is 80 percent Muslim, while the rest of the country is overwhelmingly Buddhist.
The region is under martial law, heavily policed by the military and sometimes staffed with trained civilian volunteers, with residents and rights groups accusing them of heavy-handed tactics.
Some rebel groups in the south have said they are fighting to establish an independent state. Police, teachers and other government representatives are often targets of the violence.
Authorities arrested several suspects from the region in August over a series of small bombs detonated in Bangkok, the capital, although they have not directly blamed any armed group.
"Since 2004, these attacks have intensified. They've become much more coordinated and larger in nature," said Al Jazeera's Wayne Hay, reporting from Bangkok.
"There are several groups operating there, and the largest one is called Barisan Revolusi Nasional or BRN. They are believed to be behind most of the violence in the south. They say their motivations are torture, human rights abuses carried out by the military, which operates with impunity in the southern provinces."
In August, BRN told Reuters it had held a secret preliminary meeting with the government, but any step towards a peace process appeared to wither after the deputy prime minister rejected a key demand for the release of prisoners.
Tensions also spiked rose in the region in the south over allegations that 32-year-old Abdullah Esormusor, a Muslim man, was beaten so badly during military interrogation that he fell into a coma. He later died of his wounds.
The army has said there is no proof of torture.
Mara Patani, an umbrella group representing some factions of the armed rebels, has called for international intervention after the Abdullah case - a request rejected by Thailand's army.


In election pitch, UK PM Johnson backs his deal over no-deal Brexit
KABUL: An Afghan official says eight children have been killed by a roadside bomb near their school in the northeastern Takhar province.
Sayed Mehraj Sadat, the provincial police chief, said the victims of Saturday’s attack were from 10 to 15 years old.
He says the bomb’s intended target was most likely Afghan security forces, who often use the road.
No one immediately claimed responsibility for the attack.
Sadat blames Taliban insurgents who are active in Takhar province, particularly in Darqad district, where the attack took place.
In October, the Taliban launched large-scale attacks in several districts, including the provincial capital Taluqan, which were repelled by Afghan security forces.
Year-long peace talks between the US and the Taliban ended in September, after US President Donald Trump declared a seemingly imminent deal “dead.”


University of Amsterdam
Student number: 10762388
Programming Project of the Minor Programmeren
Picture source: dutchreview.com


David graduated from Lick-Wilmerding Class of 2016 and is a member of Macalester College's Class of 2020. He plans on pursuing a major in Computer Science with a minor in Data Science. He also plans on taking classes in Kinesiology at the University of Minnesota. David has been trained in Muay Thai.


--- layout: topic permalink: "/topic/financing/" title: Financing and sustainability topic-tag: financing show-resources: true ---
A critical consideration for any SDG reporting approach is its long-term financing and sustainability. Financial resources for the initial development, implementation, and maintenance of an SDG reporting initiative may come from country budgets, international NGOs, or a combination of sources.


| Name and Role | ID | Settings | |
|---|---|---|---|
| Jack Gates Administrator |<PHONE_NUMBER> | Edit Profile Delete | |
| Arlind Nushi Subscriber |<PHONE_NUMBER> | Edit Profile Delete | |
| Bryan Green Editor |<PHONE_NUMBER> | Edit Profile Delete | |
| John Smith Administrator |<PHONE_NUMBER> | Edit Profile Delete | |
| Nicholas Walker Editor |<PHONE_NUMBER> | Edit Profile Delete | |
| Jack Gates Administrator |<PHONE_NUMBER> | Edit Profile Delete | |
| Arlind Nushi Subscriber |<PHONE_NUMBER> | Edit Profile Delete | |
| Bryan Green Editor |<PHONE_NUMBER> | Edit Profile Delete | |
| John Smith Administrator |<PHONE_NUMBER> | Edit Profile Delete | |
| Nicholas Walker Editor |<PHONE_NUMBER> | Edit Profile Delete |
| Name and Role | ID | Settings | |
|---|---|---|---|
| Jack Gates Administrator |<PHONE_NUMBER> | Edit Profile Delete | |
| John Smith Administrator |<PHONE_NUMBER> | Edit Profile Delete |
| Name and Role | ID | Settings | |
|---|---|---|---|
|<PHONE_NUMBER> | Edit Profile Delete | ||
| Bryan Green Editor |<PHONE_NUMBER> | Edit Profile Delete | |
| Nicholas Walker Editor |<PHONE_NUMBER> | Edit Profile Delete |


Zorp's been gone for hours. I've been wandering around this weird
desert since I met that guy. But he disappeared!
I am so hot, thirsty, and tired. Wait, is that an oasis behind me?
Did I just walk past a body of water? Maybe it was a mirage...
Maybe I should go back and check...
Are you going to go back and check or keep moving?