text:
Liveaboard Diving Philippines
Tour Offer
Dugong watching / Apo Reef
Dugong Watch / Apo Reef / Coron Wrecks
M/Y AZALEA
Our Yacht M/Y Azalea
Video Tubbataha Reef
Scuba Diving in the Philippines
Home > Scuba Diving in the Philippines
Suba Diving in the Philippines
7640 islands, water temperatures that do not fall below 25 degrees Celsius all year round and almost 37,000 km of coastline are the foundation for Suba Diving in the Philippines.
In recent years, the Philippines, which has been a secret tip among divers, have become firmly established in the offerings of the diving travel providers.
It is not always easy to decide where Suba Diving in the Philippines is most appropriate. Wreck diving, big fish, macro diving or floating in the wonderful coral gardens all these possibilities are offered by the waters around the islands of the Philippines.
Often, in recent years, I have found that divers who travel from very far away did not know the size of the Philippines ahead of their journey.
This leads to many dive days being lost due to incorrect travel planning.
Here is the example below:
The combination of diving in Puerto Galera with subsequent exploration of the Japanese wrecks in Coron Bay sounds like a very worthwhile combination of a dive trip for every diver.
The devil is here but as so often in detail, both dive sites belong to the Luzon archipelago but are on different islands (Puerto Galera on Mindoro, Coron Bay on Palawan). On a map is quickly researched that the distance between the two places is only 210 km. In reality, unfortunately, it looks like there is no secure cross-connection between the islands. The only means of transport is an inland flight from Manila to Coron or Puerto Princesa.
In our example, we assume that Puerto Galera is the first stop on this journey. So if we want to move from Puerto Galera to Coron we need about half a day to get to the airport in Manila to catch the flight to Coron or Puerto Princesa. Including the 24hr dive ban prior to a flight, these are two days diving that we miss when switching between destinations. If we add the day's dive ban before our day of departure, this already results in three days of our dive vacation on which we cannot dive.
I would like to give below a summary of my experiences and impressions from the respective regions, which should help you to find the right dive site or the right combination of dive sites for your individual interests.
I am also happy to provide personal advice. Send an e-mail to info@liveaboard-diving-philippines.com and I will look at how and if I can help you.
With a population of 103 million and a total area of 343 km², the Philippines is the fifth largest island nation in the world. The islands extend from north to south over a distance of 1850 kilometer and a width from west to east of over 1250 kilometers.
The Philippines are generally divided into three major regions (island groups):
In the north and west, this is the Luzon Islands, with the islands of Luzon, Masbate, Mindoro and Palawan.
In the middle of the island state is the Visayas archipelago, with the islands of Panay, Negros, Cebu, Leyte, Samar and Bohol.
the southernmost archipelago is Mindanao, which is made up of Mindanao Island, Basilan Island and the Sulu Archipelago with Jolo Island.
Almost 99% of all intercontinental flights land at the two largest airports in the Philippines, Manila or Cebu. From there, the domestic flights start on the respective holiday island. Unfortunately, there are very few direct connections between the islands so that in case of a change of islands often the detour via Manila has to be taken to reach your destination for Suba Diving in the Philippines.
Dive Sites in the Philippines
In the list of dive sites, I lean on the previously described division into island groups and start in the north with the island group Luzon.
Diving in Luzon
Luzon is the largest and at the same time the main island of the Philippines. In the south of the island is the capital of the Philippines, Manila. After landing in Manila the direct transfer from the airport to the dive sites on Luzon or via a connecting flight to your holiday island takes place. If you choose to dive in Luzon, most of the resorts and dive centers offer pick up from the airport with transfer to the resort.
Anilao
Located in southwest Luzon just three hours drive from Manila, Anilao is the Mecca for macro photographers and is often referred as the birthplace of all diving activities in the Philippines.
Anyone who has declared wreck diving as his favorite will find everything he wants in Subic Bay. Only 2.5 hours northwest ofManila, Subic Bay is home to many of the dive sites and wrecks just a few hundred yards from the shore. For example, USS New York, Oryoku Maru and Seian Maru are within 500 meters of each other.
Many of the wrecks are easy for advanced divers to dive. The El Capitan also offers divers without special wreck diving training the possibility to safely explore the interior of the ship.
Puerto Galera / Sabang
If you are more interested in a mix of nightlife and diving then the selection Puerto Galeras / Sabang is the right location. Only three hours from Manila Airport is Batangas, the ferry port with connections to Puerto Galera and Sabang. The crossing from Batangas to Sabang or Puerto Galera takes about one hour.
Puerto Galera and Sabang are already on the island of Mindoro and offer breathtaking dive spots along the east coast. During the day photo shoot with an incredible number of microorganisms under water mixed with pronounced nightlife in the evening and night are the flagship of this region.
Snorkeling with whale sharks in Donsol
If your travel time is between February and May you should take a tour to Donsol and take the opportunity with whale sharks to snorkeling. During the months of March and April these beautiful animals are almost guaranteed. The small town of Donsol is located on the southern tip of Luzon and is best reached by air from Manila to Legaspi. From there, the one-hour transfer to Donsol takes place.
Advance booking is advised as local regulations only allow a certain number of boats and snorkelers.
At this point, I finish the first part of my series Suba Diving in the Philippines and look forward to your comments and additions. I will soon be following part two of my series Suba Diving in the Philippines where I will give you some information about the dive sites on Palawan. In the third part of this series I report from the Visayas. But I am not sure if I can handle the entire dive sites of the Visayas in only article or if I have to divide it.
With big fins blow from the Philippines
Your Dirk
Liveaboard Diving Philippines is one of the most experienced operators for Scuba Diving Tours around Palawan.
Liveaboard On Instagram
05:5618:15 +08
WedThuFri
© Liveaboard Diving Philippines 2019.


October 8: On my third day in Sydney, I spent the morning at the Paddington Market and the afternoon finding my way around the city. I am staying at the Hughenden Hotel in Paddington, partly because I wanted to get away from the chain hotels but mostly because my fourth night here is only $1! It's a pretty cute boutique hotel, built in the 1870s, and each room is unique. I'm staying in "The Queen Room", which has a kitchenette and a private patio. It is a bit out of the way, so I have to ride the bus alot; I should get a pair of bus pants!
To get around Sydney more easily, I bought a "MyZone" multi-pass ticket that gives me unlimited access to the buses, trains, and ferries, which is a really great deal. I ended up catching the 3 pm ferry to Manly and spent the rest of the day there. Manly is a northern suburb of Sydney and one of the first places that the English transport (convict) ships landed. In 1790, Captain Phillip was speared by one of the indigenous people living there, after which a lot of confusion ensued, and of course, tensions rose. More recently, Manly is home to the Sea Eagles rugby team , who won the NRL Premiership last week. Even though it was raining, it was nice to walk on the beach and eat an ice cream. I also bought some art, but that story will have to wait until later.
Of course, a ferry ride to Manly would not be complete without the requisite picture of the Sydney Opera House and the Harbour Bridge. Unfortunately, it was a really cloudy and sometimes rainy day, but I think the picture turned out nice enough.
I also walked around the Opera House, which is situated on Bennelong Point, and I admired all the well-dressed people there to catch a show. Lots of little cafes and bars were crowded with the pre-show crowd and others who were just there for the views.
It was a pretty busy day and tomorrow I'll explore a bit more. I think I'm going to head down to Bondi Beach then probably back up to Circular Quay (where the Opera House is). This time, however, I'll head in the other direction and go to The Rocks and the Sydney Observatory and whatever else appeals to me. Or maybe I'll just stay in my hotel room…. Bazinga!
Hi Hon – I want you to be my tour guide!
Can I come to?? Wow, Poffertjes, heerlijk!! I knew I could make a killing!!


Who was the real Andrew Jackson, and what can we learn from him today?
To overcome the philosophy of death which characterizes modernity, and which has us all in its grip, we are in need of spiritual reintegration.
The School of Antiquity might serve as a corrective to our failing educational system.


Eucharistic adoration according to Fr. Frederick Faber is "the queen of all devotions." Pope St. Pius X taught that it was the devotion "most profitable for our salvation." And St. Gemma Galgani treasured it as "the school of Paradise where one learns how to love."
Mother Teresa once said: "The time you spend with Jesus in the Blessed Sacrament is the best time you will spend on earth." Take this great saint's words to heart. Then take the Manual for Eucharistic Adoration when you go to meet Him, and keep it with you Spiritual Communions and other moments of spontaneous adoration throughout the day.
"When we deepen our personal relationship with Jesus by spending time with Him in this way, we will become more like Him, just as old friends or a long-married couple grow more and more similar. We become more aware of the obstacles of sin in our life that stand between us and Our Lord. We develop a stronger desire to make habits of virtue and self-sacrifice in imitation of Him.
Being with the One who, out of infinite love, waits for us in the Blessed Sacrament, we will grow in peace amid the sufferings and trials of this life. We will find rest in the knowledge of His love for us, which is beyond our wildest hopes and dreams. When we truly know that we are loved, we can endure much and accomplish many things in the Kingdom.
"In our self-centered culture and classic American emphasis on work, we often feel we have to accomplish something during our times of prayer before the Blessed Sacrament. We rate our experience by how "good" our prayer was, how heartfelt our devotion was, or how focused we could remain. Yet prayer and contemplation are fundamentally God's work, in which we are invited to participate.
We need only give him the opening, and He will do the rest. By coming to adoration, we are handing him the key to our hearts, allowing the rays of His love and grace to bathe our souls in the light of His Presence, as the rays of the sun bathe our bodies in light. If we can take the time to pull away from the busyness and distractions of life and just sit at His feet, He will lead us."
"When it is hard to pray, we have the gift of showing our love through self-sacrifice. We will be surprised at the fruits that will come from this prayer of patient, persevering love."
I got this as a present for Christmas, and I absolutely cherish it. It helps give structure to my holy hours. One of the most useful lessons was ARTS: adoration, reparation, thanksgiving, supplication. These are 4 things I make sure to do every time now. There are some tremendous prayers, meditations, and devotions in this book that I have never encountered before, which I now incorporate into my holy hours. Also the book is absolutely gorgeous. Imitation leather, golden-trimmed pages, with a bookmark that I strategically place at my favorite part. The Poor Clares really published a beautiful little guide. I highly recommend it!


CCCC submitted a written brief to the Special Senate Committee on the Charitable Sector in November detailing the well-researched benefits of advancing religion to the general public.
In the brief, CCCC asked the senate committee to affirm Advancing Religion as a charitable purpose with significant public benefit to Canadian society.
Rev. John Pellowe, CEO of CCCC, has been invited to speak to the senate commiittee at 11:00 AM Monday, March 18 with a special emphasis on how even non-religious people benefit from religious charities. The presentation will be followed by a time for Q&A with the senators.
CCCC asks for your prayers as we make the case for why religious organizations should have charitable status.


text:
Q: Invocar Funciones desde Subprocesos Buenas Tengo la Siguiente Estructura:
static readonly object _object = new object();

Public void loadtacks(){
var task1 {( =>
    F1();
});
var task2 {( =>
    F2();
});
task1.Start();
task2.Start();
}

Public void F1()
{
    //Code
    FX();
}

Public void F2()
{
    //Code
    FX();
}

Public void FX()
{
  lock (_object)
  {
     MethodInvoker method = delegate { FY(); };
     method.Invoke();
  }
}

Y tengo la siguiente excepcion a resolver:
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.Collections.ArrayList.get_Item(Int32 index)
   at System.Windows.Forms.DataGridViewSelectedCellCollection.get_Item(Int32 index)
   at HitCounterManager.ProfileDataGridView.get_ActiveSplit()
   at HitCounterManager.ProfileDataGridView.AddDuration(Int64 Duration)
   at HitCounterManager.ProfilesControl.UpdateDuration()
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Me comentaron que la exepcion es producida ya que se invoca la funcion FY() directamente desde un subproceso, intente hacer el apaño de ponerla en FX() con un methodinvoker pero no se si es correcto. Me dijo: "Invoke the function call on the UI thread" no tengo mucha idea de terminos y subprocesos, si pueden echarme una mano lo agradeceria.

A: Bueno se me ocurrio la siguiente forma para resolverlo:
static readonly object _object = new object();
private bool _SplitGo = false;
System.Windows.Forms.Timer _update_timer = new System.Windows.Forms.Timer() { Interval = 1000 };

Public void loadtacks(){
_update_timer.Tick += (sender, args) => FY();
_update_timer.Enabled = true;
var task1 {( =>
    F1();
});
var task2 {( =>
    F2();
});
task1.Start();
task2.Start();
}

Public void F1()
{
    //Code
    FX();
}

Public void F2()
{
    //Code
    FX();
}

Public void FX()
{
   lock (_object)
   {
     if (_SplitGo) { Thread.Sleep(2000); }
     _SplitGo = true;
   }
}

public void FY()
        {
            if (_SplitGo)
            {
               //Code
                _SplitGo = false;
            }
        }

De este modo FY siempre es ejecutado en el Main thread. Me pregunto si En FX se debera poner algun invoke para setear la variable global seguramente, pero creo que con esto ya lo solucione.

redpajama_set_name: RedPajamaStackExchange


Easter Sunday, grab yourself a bargain and head along to the Cobden Miniature Railway Car Boot Sale!
$15 for a 3m site!
Book your car boot sale site now! 0428 363 375.
Proudly brought to you by the Pheonix Group and the Rotary Club of Cobden.


Silentnight Deepsleep 13.5 Tog is rated 4.7 out of 5 by 6.
Set contains: 1 x 13.5 Tog Duvet.
Rated 5 out of 5 by Nu14 from Lovely and soft Love sleeping in this duvet. Soft light weight but warm for summer. Not to heavy. Keeps it's shape. Lovely duvet, best one over ever had.


We suggest some points of interest to visit during your stay in Milan.
Subway M3 from the nearby Centrale and after 4 stops get off at Duomo. For a fantastic panoramic view of the city we suggest to arrive before 17:00.
Subway M2 from the nearby Centrale Station and after 6 stops get off at Stazione Cadorna. After a short walk you will reach your destination.
Subway M3 from the nearby Centrale Station and after 4 stops get off at Duomo. You will find the best boutiques in the city.
Subway M3 from the nearby Centrale Station and get off at Montenapoleone. To enjoy a walk among the world's most famous fashion brands.
Subway M3 from the nearby Central Station and after 4 stops get off at Duomo. Cross the Galleria Vittorio Emanuele II and you will reach your destination.
A short walk to subway M1 station Lima to get to the Fiera. Alternatively the train RV2016 from Centrale Station. The complex hosts the biggest events in Italy.
Subway M1 from the nearby Centrale Station to Garibaldi. then subway M5 to San Siro Stadio.
Subway M2 from the nearby Centrale Station and get off at Assago Milanofiori Forum to enjoy the best concerts in Europe.
Subway M2 from the nearby Centrale Station and get off at Gioia. You will be amazed by the combination of nature and contemporary architecture.


As America's Un-carrier, T-Mobile US, Inc. (NASDAQ: TMUS) is redefining the way consumers and businesses buy wireless services through leading product and service innovation. The Company's advanced nationwide 4G LTE network delivers outstanding wireless experiences to more than 63million customers who are unwilling to compromise on quality and value. Based in Bellevue, Washington, T-Mobile US provides services through its subsidiaries and operates its flagship brands, T-Mobile and MetroPCS.
Cypress Chamber of Commerce is Exhibiting at Orange County's Largest Mixer!
The Center for Strategic Economic Studies and Institutional Development is Exhibiting at Orange County's Largest Mixer!


I just purchased my third RX-7. My first one was in high school. I had an 81 NA 12A. It was black and I rode her hard. Second was a 91 convertible. Also black. Nice car, but didn't perform like my 81. I only had that one for a few years. And then I grew up and got a real job and drove an SUV.
So I got the rotary fever again (or maybe a mid-life crisis) and I found a 84 GSL-SE. This one is silver, but I'm thinking about painting her black. So far, I have replaced the springs (RB), shocks (Tokiko Illumina), brake rotors (hubs), bearings, ball joints, sway bars, brakes pads, radiator hoses (silicone), vacuum lines (silicone), MSD ignition kit, RB Street Port exhaust, new seats, double din radio, and new tires. I've only had her for about 4 months, but it has been an obsession so far.
Anyway, I am in Birmingham, Alabama and I was wondering if there were any local RX-7 clubs around here. I don't see many on the road anymore.
Welcome back! Pics of the car?
Hi there, we want to see your car.


text:
De Myopia Hunt Club is een Amerikaanse countryclub. Hij ligt op ongeveer 30 minuten van Boston, Massachusetts.

De club werd in 1882 opgericht door J. Murray Forbes. De club is vernoemd naar de Myopia Club in Westminster, Massachusetts, waar enkele van de eerste leden van de Hunt Club vandaan kwamen. De leden deden vroeger aan vossenjachten, tegenwoordig wordt er niet meer op een vos gejaagd maar op een nepprooi, waardoor er over slipjachten wordt gesproken.

In 1902 werd een tennisbaan aangelegd, maar die bestaat niet meer.

Golf
De Myopia Hunt Club is beroemd om haar 'links' golfbaan, waar in 1898, 1901, 1905 en 1908 het US Open werd gehouden. In de 19de eeuw werd het Open maar op vijf verschillende banen gespeeld. In 1901 werd een vreemd record genoteerd door de winnaar, Willie Anderson. Hij maakte met 331 de slechtste score waarmee ooit iemand het Open won.

Myopia werd door Herbert Leeds aangelegd en is de enige golfbaan die in het Amerikaanse blad 'Golf Magazine' wordt genoemd met twee van de 100 mooiste holes in de Verenigde Staten. Hole 4de en 9de hole delen deze eer.

Rond de laatste eeuwwisseling werd de baan verlengd door zeven tees te verplaatsen. Ook werden veel bomen verwijderd om het oude links-karakter aan de baan terug te geven. De baan wordt niet druk bespeeld, slechts ongeveer 12.000 rondes per jaar.

Het clubhuis
Het clubhuis is een wit, langgerekt huis met een lange veranda. Het is een besloten club, binnen zijn oude krakende vloeren en oude houten betimmeringen. Bij de bar is geen bediening, leden vullen zelf hun bonnetje in. Sommige leden bewaren hun flessen in een eigen locker.

Amerikaanse countryclub
Golfbaan in de Verenigde Staten
Bouwwerk in Massachusetts
Sportclub in Boston

redpajama_set_name: RedPajamaWikipedia


Campsite with equipped swimming pools in Emilia-Romagna, the best place for swim-lovers!
In the Spina Camping Village waterpark you can find a swimming pool 25x14mt, 1,50 deep, with 5 lanes.
The swimming pool is open to swim-lovers and to everyone loving to swim in total relax on holiday.
That's why Spina Camping Village, a campsite with equipped swimming pools, could be the best holiday village for all kind of sport associations wanting to organize summer campus at the sea with recreational and sport purposes.
Possibility to organize group swimming races, internships, summer camp.


Are you a Fresh Graduate | Budding Marketing Professional looking to update your skills and advance your career? Then LEAP is just the right program for you.
LEAP is a comprehensive "Training & Internship" program specifically designed for fresh and aspiring Digital Marketing professionals. The program is structured as 3 months of training followed by 3 months of internship.
LEAP is derived from four guiding principles. LEARN new skill, gain EXPERIENCE alongside experts, APPLY those skills in live projects and follow the best industry PRACTICES.
During the training period, you will learn various Digital Marketing Topics. The various topics in the training are arranged in sections like Basics Of Internet and HTML, Jvascript and CSS , Automating Marketing Tasks with Python, SEO and Landing Pages, Marketing Funnels and A/B Marketing, EMail and SMS Marketing, Social Media Marketing, Campaign Management, Webmaster Tools and Analytics , Lead Generation Techniques , Articles , Blogs and Newsletters etc. Each topic and concept will be explained with an example and there will be multiple hands on sessions for each topic.
At the end of the training period you will be equipped to independently initiate Digital Marketing Tasks and Campaigns . You will be trained to emerge as a "True Digital Marketing Professional" having background in different Digital Marketing Segments.
During your Internship period, you will be participating in the Digital Marketing Activities of KTS and other Customer Products and Services. You will gain valuable experience in End to end Digital Marketing working alongside seasoned Marketing professionals and shall acquaint yourself with the best Digital Marketing practices followed by the Industry. Upon completing the Internship Program, you will be able to plan and execute small to medium sized Digital Marketing Campaigns.
LEAP is a complete program to transform you from a "fresh graduate" to an "Industry ready Digital Marketing Professional".
KTS InfoTech is an Indian software company with more than 18 years of Software Engineering and Training Experience. KTS brings more than 16 years of their Digital Marketing experience ever since they launched their First Video Rental Software Product VideoManager to the market on 2003. We cater to hundreds of customers across the globe for our products and IT Services. We are one of the TOP rated providers in some of the popular IT Outsourcing platforms like Upwork.
Since inception we have also been giving a variety of training programs and video tutorials on different Digital Marketing Topics and Software engineering .
Tom Thomas is the founder and Technical Director of KTS Infotech. He holds an M.Tech Degree in Computer Science and has over two decades of industry experience with a rare mix of Technical and Digital Marketing experince. He is also the lead faculty of the LEAP program.


text:
Q: How to move from one fragment to another I currently have a program that has multiple fragments, and I want a button in the home fragment to take me to a second fragment. I cannot figure out how to do this. I will include the code for my HomeFragment
HomeFragment.java
package com.mvsolutions.snap.ui.home;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.ml.vision.FirebaseVision;
import com.google.firebase.ml.vision.common.FirebaseVisionImage;
import com.google.firebase.ml.vision.text.FirebaseVisionText;
import com.google.firebase.ml.vision.text.FirebaseVisionTextDetector;
import com.mvsolutions.snap.R;
import com.mvsolutions.snap.ui.display.DisplayFragment;

import java.util.List;
import java.util.zip.Inflater;

import static android.app.Activity.RESULT_OK;

public class HomeFragment extends Fragment {

    private HomeViewModel homeViewModel;

    private ImageView imageView;
    private Button captureImageButton, detectButton, pickButton;
    private Bitmap imageBitmap;
    private TextView capturedTextView;
    static final int REQUEST_IMAGE_CAPTURE = 1;
    private static final int RESULT_LOAD_IMAGE = 101;

    public View onCreateView(@NonNull final LayoutInflater inflater,
                             final ViewGroup container, Bundle savedInstanceState) {
        homeViewModel = ViewModelProviders.of(this).get(HomeViewModel.class);
        View root = inflater.inflate(R.layout.fragment_home, container, false);
        //View v = inflater.inflate(R.layout.fragment_display, container, false);
        imageView = root.findViewById(R.id.home_image_view_img);
        capturedTextView = root.findViewById(R.id.home_text_view_txt);
        captureImageButton = root.findViewById(R.id.capture_image_btn);
        detectButton = root.findViewById(R.id.detect_text_btn);
        pickButton = root.findViewById(R.id.pick_image_btn);

        captureImageButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                captureImage();
            }
        });
        pickButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                pickImage();
            }
        });
        detectButton.setOnClickListener(new View.OnClickListener() {
            @Override
*********************************************************************************************
            public void onClick(View v) {
                DisplayFragment displayFragment = new DisplayFragment();
                FragmentManager fragmentManager =  getFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.DisplayFragment, displayFragment, displayFragment.getTag()).commit();
*********************************************************************************************
                detectTextFromImage();
            }
        });
        return root;
    }

    private void detectTextFromImage() {
        capturedTextView.setText("");
        FirebaseVisionImage firebaseVisionImage = FirebaseVisionImage.fromBitmap(imageBitmap);
        FirebaseVisionTextDetector visionTextDetector = FirebaseVision.getInstance().getVisionTextDetector();
        visionTextDetector.detectInImage(firebaseVisionImage).addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
            @Override
            public void onSuccess(FirebaseVisionText firebaseVisionText) {
                List<FirebaseVisionText.Block> textBlocks = firebaseVisionText.getBlocks();
                if (textBlocks.size() == 0) {
                    Toast.makeText(getContext(), "No Text Found", Toast.LENGTH_SHORT).show();
                } else {
                    for (FirebaseVisionText.Block block : textBlocks) {
                        String text = block.getText();
                        capturedTextView.setText(capturedTextView.getText() + " " + text);
                    }
                }
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(getContext(), "Something went wrong", Toast.LENGTH_SHORT).show();
                Log.d("Error", e.getMessage());
            }
        });
    }

    private void pickImage() {
        Intent i = new Intent(
                Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(i, RESULT_LOAD_IMAGE);
    }

    private void captureImage() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            imageBitmap = (Bitmap) extras.get("data");
            imageView.setImageBitmap(imageBitmap);
        }
        else if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
            Uri imageUri = data.getData();
            imageView.setImageURI(imageUri);
        }
    }
}

between the two lines of asterisks, I have attempted to write some code to make the button take me to the second fragment. If anyone can fix this code, or offer me a new solution towards answering my question, that would be greatly appreciated.
I had forgotten to add a commit statement in my code but even with that it still crashes. Here is the error message:
2020-08-01 13:55:23.904 22878-22878/com.mvsolutions.snap E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.mvsolutions.snap, PID: 22878
    java.lang.NullPointerException: null reference
        at com.google.android.gms.common.internal.Preconditions.checkNotNull(Unknown Source:7)
        at com.google.firebase.ml.vision.common.FirebaseVisionImage.<init>(Unknown Source:3)
        at com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(Unknown Source:2)
        at com.mvsolutions.snap.ui.home.HomeFragment.detectTextFromImage(HomeFragment.java:94)
        at com.mvsolutions.snap.ui.home.HomeFragment.access$200(HomeFragment.java:40)
        at com.mvsolutions.snap.ui.home.HomeFragment$3.onClick(HomeFragment.java:86)
        at android.view.View.performClick(View.java:7870)
        at android.widget.TextView.performClick(TextView.java:14966)
        at android.view.View.performClickInternal(View.java:7839)
        at android.view.View.access$3600(View.java:886)
        at android.view.View$PerformClick.run(View.java:29315)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7777)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)
2020-08-01 13:55:23.923 22878-22878/com.mvsolutions.snap I/Process: Sending signal. PID: 22878 SIG: 9

A: You are missing a call to FragmentTransaction.commit().
*********************************************************************************************
public void onClick(View v) {
    DisplayFragment displayFragment = new DisplayFragment();
    FragmentManager fragmentManager =  getFragmentManager();
    fragmentManager.beginTransaction()
                    .replace(R.id.DisplayFragment, displayFragment, displayFragment.getTag())
                    .commit() // <- HELLO!;
*********************************************************************************************

Edit: Well, now you're just asking a  completely new question, but OK.
Your error messages is pretty explicit: you are passing null to FirebaseVisionImage.fromBitmap in your call to detectTextFromImage in your HomeFragment at line 94:
java.lang.NullPointerException: null reference
    at com.google.android.gms.common.internal.Preconditions.checkNotNull(Unknown Source:7)
    at com.google.firebase.ml.vision.common.FirebaseVisionImage.<init>(Unknown Source:3)
    at com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(Unknown Source:2)
    at com.mvsolutions.snap.ui.home.HomeFragment.detectTextFromImage(HomeFragment.java:94)

From your code I'm guessing it's imageBitmap so you should start there. Please use your debugger to determine why that is null then fix your logic so it's not null.


The "Amici del Mediterraneo" project, realized by the "Università per Stranieri" of Siena, includes the production of two handbooks for the teaching of Italian as a second language intended for high school students of the Egyptian Republic. The course of Italian is divided into two levels, specifically planned and realised to satisfy the linguistic needs of such kind of students. The course's main objective is to teach the language as a communication instrument to allow interaction in common contexts related to everyday life and professional introduction of the students in working fields related to tourism and commerce.


text:
Did Harry Styles Just Give Taylor Swift a Mid-Concert Shout Out?
Harry Styles almost broke out into Taylor Swift's track "22" during a concert in Copenhagen, Denmark, and we're so here for it.
It all happened after the former One Direction crooner gave a lucky fan in the audience a birthday shoutout.
Harry asked the concertgoer her name and asked her how old she was turning and when she said 22 he told the crowd "She's 22, OK" before almost breaking out into song and singing "'I don't know about…'"
The full lyric to Taylor's "22" jam goes "I don't know about you but I'm feeling 22" which resulted in the audience erupting into applause for the subtle (and amazing) shoutout.
The exes dated back in 2012/2013 and Taylor infamously penned 1989 track "Out of the Woods" about Harry.
See the best reactions to the Swift reference below:
{"position1": {"artist": {"bio": "", "id": 31552663, "name": "Harry Styles"}, "catalog_type": "artist", "description": "", "id": 31552663, "name": "Harry Styles", "related": [{"bio": "", "id": 31344347, "name": "Niall Horan"}, {"bio": "", "id": 687496, "name": "One Direction"}, {"bio": "", "id": 396790, "name": "Ed Sheeran"}, {"bio": "", "id": 30421361, "name": "Shawn Mendes"}, {"bio": "", "id": 40523, "name": "Maroon 5"}, {"bio": "", "id": 561823, "name": "Imagine Dragons"}, {"bio": "", "id": 30584710, "name": "Nick Jonas"}], "tagged": true, "type": "catalog"}}

redpajama_set_name: RedPajamaCommonCrawl


text:
How to Live Safely in a Science Fiction Universe
by Charles Yu
Published Nov. 8, 2010 by Pantheon.
4 stars (11 reviews)
Every day in Minor Universe 31 people get into time machines and try to change the past. That's where Charles Yu, time travel technician, steps in. He helps save people from themselves. Literally. When he's not taking client calls, Yu visits his mother and searches for his father, who invented time travel and then vanished. The key to locating his father may be found in a book. It's called How to Live Safely in a Science Fictional Universe, and somewhere inside it is information that will help him. It may even save his life.
1 edition
Elspeth reviewed How to Live Safely in a Science Fiction Universe by Charles Yu
Review of 'How to Live Safely in a Science Fiction Universe' on 'Goodreads'
This is a fascinating book with a lot of little philosophical tidbits to chew on. I'll be thinking about this one for a while. It's autobiographical but transferred to a sci fi setting. There are a lot of poignant moments with the main character's Taiwanese immigrant parents, which I'm assuming are drawn from the author's life (The MC has the author's name, so not a stretch). These largely dwell on his father's struggle to make something of himself in a country that doesn't value the ambitions of poor immigrants. In the book, the father's ambition during the MC's childhood is to invent a time machine and thereby earn respect and prestige as an engineer. As an adult, the MC works as a time machine repairman, spending all his time in a nebulous region of time not connected to the real world's present, wondering where his missing father is. This leads …
This is a fascinating book with a lot of little philosophical tidbits to chew on. I'll be thinking about this one for a while. It's autobiographical but transferred to a sci fi setting. There are a lot of poignant moments with the main character's Taiwanese immigrant parents, which I'm assuming are drawn from the author's life (The MC has the author's name, so not a stretch). These largely dwell on his father's struggle to make something of himself in a country that doesn't value the ambitions of poor immigrants. In the book, the father's ambition during the MC's childhood is to invent a time machine and thereby earn respect and prestige as an engineer. As an adult, the MC works as a time machine repairman, spending all his time in a nebulous region of time not connected to the real world's present, wondering where his missing father is. This leads to a lot of meditations on the nature of time and how to deal with the problem of living a finite life.
The only things keeping me from giving this book five stars were the repeated instances of casual misogyny and the logical inconsistencies. The misogyny was not enough to outright offend but enough to take me out of the story and remind me that the book was written by a man.
As for the logical issues, I would have been ok with a few because the whole science fiction aspect is clearly metaphorical. This is really a book about a father and son, not a book about time travel. Time travel itself is always tricky and I'm willing to grant authors of these stories a bit of hand wavery, but these weren't problems that can just be solved with suspension of disbelief. There were so many places where the author directly contradicted himself that it became hard to ignore. For example, at the beginning he goes on a long tangent about how he doesn't know exactly how long he's been travelling in his time machine. He says he could calculate it but it would take a lot of complicated math and he's not interested. A few chapters later he just casually mentions exactly how long he's been there, which he knows from a device implanted in his wrist. He also refers to having a one night stand with an alien, but then says they met up a couple of times. Before his parents even immigrated there, the entire US had been collapsed into one giant city, itself merged with Tokyo (such a cool concept), and yet at one point the author mentions wanting a toy as a kid that required sending money off to another state. When other states didn't exist any more. It was even explicitly mentioned that Hawaii and Alaska were included in the concatenation.
The last inconsistency in particular has me thinking that this novel might be the result of two disparate books being merged together. A lot of the reminiscences of childhood come off as very grounded in reality, which is great, but sometimes you can see the seams where the author stitched these personal essays into his sci fi time travel adventure. And not just in these instances, but overall the writing came off as disjointed. It's a shame because the world is fascinating and I would have loved to get immersed in it but couldn't. I love the idea of showing these realistic, down-to-earth family dynamics in a crazy world, but they just weren't integrated that well. It's disappointing because the issues could have been easily resolved without sacrificing any of the heart and I'm left wondering how they were missed by the author and the editor.
I read this book twice in a row so clearly I loved it. I read it again to go back and savour the philosophy, but the issues with consistency were more obvious the second time through. Still, I'm left wanting more from this world. I want to know everything about it. Overall, highly recommend.
ansate reviewed How to Live Safely in a Science Fiction Universe by Charles Yu
Review of 'How to Live Safely in a Science Fiction Universe' on Goodreads
I'm sorry about your dad.
Steen Christiansen reviewed How to Live Safely in a Science Fiction Universe by Charles Yu
Amazing sf autobiography, metafiction and consciousness meditation. It's narrative is filled with recursive loops, logical conundrums and the playful argument that emotions can be described scientifically.
ghostmodernist
cmonster
unsquare
Alex Keane
b bennett
joeyh
Asian Diasporic Novels
Read It for Life
BIPOC writers


A dossier of the financing strategies for major theme parks around the world, provided in easy-to-interpret sources and uses tables.
The tables include a breakdown of the various sources of funding, as available, by park. Detailed breakdowns are available in a greater level of detail for some parks than others.
Images are for reference only, and do not reflect the actual content. Sample images are representative of the layout and depth of the report only.


text:
Proclamations, 296 results 296
Minorities, 7 results 7
Community centers, 3 results 3
Diseases, 3 results 3
Schools, 2 results 2
Health facilities, 1 results 1
Proclamation - Air Cadet Week
Part of City of Winnipeg (1874-1971)
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated April 1969, declaring the week of April 20, 1969 "Air Cadet Week".
Winnipeg (Man.). Mayor's Office
Proclamation - Fargo-Moorhead Day
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated May 1, 1969, declaring July 12, 1969 "Fargo-Moorhead Day" in honour of a visit from the Mayors of Fargo, North Dakota, and Moorhead, Minnesota.
Proclamation - Universal Craftsmen Council of Engineer's Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated July 9, 1969, marking August 4-9, 1969 as "Universal Craftsmen Council of Engineer's Week".
Proclamation - Youth Appreciation Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated November 5, 1969, declaring November 10-16, 1969 "Youth Appreciation Week". Copy on file.
Proclamation - Jaycee Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated January 7, 1970, marking January 11-17, 1970 as "Jaycee Week".
Proclamation - India Day
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated March 11, 1970, marking March 14, 1970 as "India Day".
Proclamation - Chamber of Commerce Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated April 15, 1970, marking April 20-26, 1970 as "Chamber of Commerce Week".
Proclamation - Western Canada Childrens Wear Market Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, declaring May 2-6, 1970 as "Western Canada Childrens Wear Market Week".
Proclamation - Restaurant Month
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated October 1, 1969, declaring October 1970 "Restaurant Month".
Proclamation - B'nai B'rith Youth Organization Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, declaring December 27, 1970 to January 2, 1971 as " B'nai B'rith Youth Organization Week".
Proclamation - Consumers' Week in Canada
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated February 24, 1971, marking March 1-6, 1971 as "Consumers' Week in Canada".
Proclamation - Shrine Circus Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated April 21, 1971, marking May 1-8, 1971 as "Shrine Circus Week".
Proclamation - Legion Wheel Chair Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated August 11, 1971, marking August 15-21, 1971 as "Legion Wheel Chair Week".
Proclamation - Planetarium Week in Winnipeg
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated August 18, 1971, marking August 22-27, 1971 as "Planetarium Week in Winnipeg".
Proclamation - Manitoba Theatre Centre Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated September 22, 1971, marking September 26 - October 3, 1971 as "Manitoba Theatre Centre Week".
Proclamation - Soroptimist Golden Jubilee
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated September 29, 1971, dedicating the week of October 3, 1971 to the celebration of the Soroptomist Golden Jubilee.
Proclamation - Fire Prevention Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated September 29, 1971, marking September 26 - October 3, 1971 as "Fire Prevention Week".
Proclamation - Bell Ringers Day
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated October 5, 1971, marking October 6, 1971 as "Bell Ringers Day".
Proclamation - United Nations Week
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated October 20, 1971, marking October 24-31, 1971 as "United Nations Week".
A proclamation from the office of Winnipeg Mayor Stephen Juba, dated November 3, 1971, marking November 8-14, 1971 as "Youth Appreciation Week".


text:
Tag Archives: Chat
Al-Qaeda fighters turn to secretive chat rooms and encrypted message boards to plan attacks
Posted in Al Qaeda, Islam, news, War on Terror	| Tagged Al Qaeda, article, attacks, Chat, encrypted, fighters, message boards, news, plan, rooms, secretive | Leave a comment
China Sentences House Church Pastors to Prison
Posted on December 2, 2009 by particularkev
Christians convicted on fabricated charges arrested en route to file protest of church attack.
LOS ANGELES, December 1 (CDN) — Five pastors arrested without a warrant in China's Shanxi Province as they were en route to file a complaint over the demolition of their church building have been sentenced to prison terms of three to seven years.
In one of the most oppressive measures against Christians in recent years, house church leader Yang Rongli was sent to prison for seven years for "illegally occupying farming land" and "disturbing transportation order by gathering masses," according to China Aid Association (CAA). She and four other pastors were sentenced on Wednesday (Nov. 25) at the People's Court of Raodu district, Linfen City, Shanxi Province.
Yang's husband, Wang Xiaoguang, was handed a sentence of three years on the charge of "illegally occupying farming land." Cui Jiaxing was sentenced to four and half years, and Yang Xuan to three and half years, on the same charge; Zhang Huamei received four years of prison for "disturbing transportation order by gathering masses."
The pastors were among Fushan Church leaders arrested by Shanxi Province officers of the Public Security Bureau (PSB) on Sept. 25 as they made their way to Beijing to protest an attack on a Fushan Church branch congregation in Linfen city. In the wee hours of Sept. 13 some 400 uniformed police and civilians bearing shovels, batons, bricks, iron hooks and other weapons had beaten members of the church who were sleeping at the nearly finished factory building used as a worship site.
With several Fushan County officials involved in the attack, dozens of Christians were seriously injured among the more than 100 who were hurt, CAA reported. According to the Epoch Times, a church member's relative obtained a license to build the shoe factory and was allowing the group to meet there, as the church was growing too large to meet in homes and the building could hold up to 400 people.
"To punish an innocent house church leader with seven years' imprisonment is the most serious sentence since 2004, when the senior Henan house church leader Pastor Zhang Rongliang received a similar length," said CAA President Bob Fu in a press statement. "We strongly condemn these unjust sentences, which are based on trumped-up charges."
Characterizing the trial as a farce, Fu said the case clearly demonstrated a deteriorating state of religious freedom in China and called upon the international community, including the U.S. administration, to express concern.
"The court's conduct throughout the trial clearly indicated the government had decided upon the verdict and prepared it in advance," Fu said in the statement. "Government prosecutors showed over 1,000 pages of so-called 'evidence materials' related to this case, but the defense lawyers were only allowed to review about 50 pages before the trial."
Pastors Yang and Wang were able to chat briefly with their son during a recess near the bathroom outside the courtroom, Fu said; they encouraged the boy to stand firm in his faith in Christ.
The two pastors have led the Fushan Church, part of a 50,000-strong house church network in Linfen and the surrounding villages, for more than 30 years.
"The Fushan Church leaders' unwarranted arrests, detentions and severe sentences after the massive church destruction on Sept. 13 marks one of the worst crackdowns on house church leaders in the past decade," Fu said.
The Beijing PSB has misrepresented the demolition and attack on the Linfen branch church as a response to a "violent uprising," Fu said. The branch congregation had gathered at the Good News Cloth Shoe Factory, a building still under construction in Fushan County, when the government-led mob attacked and took money, Bibles, clothes and cell phones, among other items, he said.
Posted in China, Christianity, Communism, USA	| Tagged 2004, ;province, administration, advance, allowing, arrested, attack, attacked, based, bathroom, batons, bearing, beaten, Beijing, Bibles, Bob Fu, boy, branch, bricks, briefly, build, building, CAA, called, cell phones, charge, charges, Chat, China, China Aid Association, Christ, Christian, Christianity, Christians, church, civilians, clothes, Communism, communist, communists, community, concern, condemn, conduct, congregation, construction, convicted, county, courtroom, crackdowns, decided, defense, demolition, demonstrated, destruction, detentions, deteriorating, district, disturbing, en route, encouraged, Epoch Times, evidence, express, fabricated, factory, faith, farce, farming, file, finished, firm, freedom, Fushan, gathered, gathering, Good News Cloth Shoe Factory, government, group, growing, handed, Henan, hold, homes, house church, hurt, husband, illegally, imprisonment, indicated, injured, innocent, international, involved, iron hooks, items, land, large, lawyers, leader, led, length, license, Linfen City, marks, Masses, massive, materials, measures, meet, members, misrepresented, mob, money, near, nearly, network, obtained, occupying, officers, officials, oppressive, order, outside, pages, pastors, people, People's Court, Persecution, prepared, President, press, prison, prosecutors, protest, PSB, Public Security Bureau, punish, Raodu, received, recess, relative, religious, response, review, senior, sentence, sentences, serious, seriously, severe, Shanxi, shoe, shovels, showed, similar, site, sleeping, son, stand, state, statement, strongly, surrounding, terms, took, transportation, trial, trumped-up, uniformed, unjust, unwarranted, uprising, USA, verdict, villages, violent, Wang Xiaoguang, warrant, weapons, worship, worst, Yang Rongli, Yang Xuan, Zhang Huamei, Zhang Rongliang | Leave a comment
SUDAN: SUPPORT FOR PRESIDENT LEADS TO ATTACKS ON CHURCHES
Posted on April 10, 2009 by particularkev
Militia destroys church building in the Nuba Mountains
NAIROBI, Kenya, April 8 (Compass Direct News) — Support for Sudanese President Omar Hassan al-Bashir in the wake of an International Criminal Court (ICC) warrant is fast turning into orchestrated attacks on Christians.
A thatched-grass building in the Nuba Mountains village of Chat, used by the Evangelical Presbyterian Church and the Sudanese Church of Christ, is one of the latest targets of such attacks.
The building was destroyed by fire on March 27 by a suspected government militia. Pro-Bashir mobs have attacked those they believe support the ICC's determination to prosecute Bashir for atrocities in the Darfur region.
As support for President Bashir escalates, especially in the North, the church faces one of the worst threats to its existence in the recent past. Today, it struggles simply to survive.
Drivers on the streets of Khartoum, even the road leading toward the airport, see huge pictures of Bashir staring down from billboards with pro-Bashir messages, such as "Mr. President, we are with you" and "You are not alone."
Kuwa Shamal, acting director of the Sudanese Church of Christ, says of the billboard campaign: "I wish the same government assuring support to the president could have the same encouraging message for the struggling church."
Chief Accused of Leading Attack
The Sudanese Church of Christ was forced to conclude a morning worship service prematurely on March 27 when a hostile group attacked. An eyewitness said this militia was led by the area chief, Kafi Tahir, who supports an Islamist agenda and is said to receive government support.
The eyewitness, a Muslim who requested anonymity, said the chief and his accomplices were armed. Helpless church members fled the structure, which had a capacity of about 500. The chief then ordered his accomplices to set the church ablaze and church members ran for their lives, the eyewitness said.
"The Sudanese Church of Christ is concerned of the government move to frustrate the activities of the churches in Nuba Mountains," said Barnabas Maitias, president of the Sudanese Church of Christ. "It is alleged that the Ministry of Defense has distributed a number of weapons to individuals who are out to support Islamic agenda and the government in Nuba Mountains, including Chief Kafi Tahir of Chat village, who recently led a group of unknown people to destroy our church."
Indeed, many Christians are worried as a new wave of intolerance sweeps the region. The intolerance could worsen as ICC prosecutor Luis Moreno-Ocampo continues to press for a court trial of Bashir.
Matta Mubarak, general secretary of the Sudanese Church of Christ, told Compass that the villagers of Chat have previously opposed the chief, who then destroyed the church building in retaliation.
"The chief fled for his life to Kadugli and he is living a comfortable life. As a result, justice for the church in Nuba Mountains has been thrown out of the window," Mubarak said. "What kind of a world are we living in, where criminals are not charged? The church feels that the Sudanese government is not concerned about the rights of Christians in the North. The future of the church in the North is uncertain."
Worshiping Without Buildings or Land
For a month now, members of the Evangelical Presbyterian Church have worshiped outdoors and without the help of an evangelist who had led them.
Shamal said that evangelist Aburahaman Tai of the Evangelical Presbyterian Church was attacked in early March outside the church by the same group that later destroyed the building.
"He was beaten and sustained head injuries and was treated at a local dispensary before being discharged," Shamal said. "He is still recovering. Indeed, it is a big blow to the church, to have no place to worship and to lack a pastor. This is a big tragedy."
Mubarak said that in some parts of Sudan, Islam has conquered the church. "In Northern Sudan, at a place called Dongola, the church building has been converted into a mosque and the few Christians forced to convert to Islam," Mubarak said.
Church struggles extend even to land ownership. Maitias told Compass that after the signing of the Comprehensive Peace Agreement in 2005, the Sudan Inter-religious Council petitioned the government for a piece of land to be allocated to the church for worship. He said three churches were allowed to apply for land allocation for the purpose of building houses of worship: the Sudanese Church of Christ, the Episcopal Church of Sudan and the Catholic Church.
But to their surprise, the offer was given with some conditions: every year, the government must cross-check church operations and is free to repossess land at will.
"We as the church find our free operation not guaranteed," Maitias said.
Andrea Amet Ubiu, who works with the Sudan Council of Churches in Khartoum, bought a piece of land from Zinab Adut in 1994 and constructed a temporary house at Salma village, which is about two miles from Khartoum.
"In 2005 the government began demolishing temporary structures in the area with a view of carrying out reallocations. To my surprise, when this [reallocation] was done, I was left out and was informed that the land I bought was not legitimate since the lady who sold the land to me was not entitled to it because she had no husband or children," Ubiu said.
"But I knew it was a calculated move by the local authorities to deny me the land, because all along I had not supported the government before the signing of the peace agreement between the North and the South," Ubiu added. "Life for me in Salma has been harsh, so I decided to forget the issue of the land and moved to a new location called Hagyouf area, five kilometers [three miles] from the town center."
Maitias sees such discrimination as common for Christians in northern Sudan.
"Here in the North, the Church is discriminated [against] in almost everything, even including education," Maitias said. "Christian institutions are not recognized by the government. Christian religious education is not taught in government schools. Christian programs are only given less than three hours in the national media on Sundays and Christian workers given only two hours for Sunday worship. Christmas celebrations are restricted to a day for celebrations, like marching with police security."
Christians who wish to operate a restaurant during Ramadan must obtain a permit from authorities. "We always ask ourselves, why all this? Our identity as Christians is an anathema," Maitias said. "Instead, the government prefers calling us 'non-Muslims.'"
A dozen non-governmental organizations have been expelled from the country because of their vocal opposition to human rights abuses in Darfur.
Posted in Christianity, Church of Christ, Islam, Presbyterian, Sudan	| Tagged 2005, ablaze, Aburahaman Tai, abuses, accomplices, accused, acting director, activities, agenda, agreement, airport, alleged, allocated, allowed, alone, anathema, Andrea Amet Ubiu, anonymity, apply, area, armed, assuring, atrocities, attack, attacked, attacks, authorities, Barnabas Maitias, beaten, believe, big, billboards, blow, bought, building, buildings, calculated, called, campaign, capacity, carrying, celebrations, center, charged, Chat, chief, children, Christian, Christianity, Christians, Christmas, church, churches, comfortable, common, Comprehensive Peace Agreement, concerned, conclude, conditions, conquered, constructed, continues, convert, converted, country, court, criminals, cross-check, Darfur, decided, demolishing, deny, destroyed, destroys, determination, discharged, discriminated, Discrimination, dispensary, distributed, Dongola, drivers, education, encouraging, entitled, Episcopal Church of Sudan, escalates, Evangelical Presbyterian Church, evangelist, existence, expelled, extend, eyewitness, fast, fire, fled, forced, forget, free, frustrate, future, General Secretary, government, group, guaranteed, Hagyouf, harsh, head injuries, help, helpless, hostile, houses, huge, human rights, husband, ICC, identity, individuals, informed, institutions, International Criminal Court, intolerance, Islam, Islamist, issue, justice, Kadugli, Kafi Tahir, Khartoum, Kuwa Shamal, lack, lady, land, latest, leading, legitimate, life, lives, living, local, Luis Moreno-Ocampo, marching, Matta Mubarak, media, members, messages, militia, Ministry of Defense, mobs, morning, mosque, mountains, Muslim, muslims, national, new, non-governmental, non-Muslims, north, northern, Nuba, obtain, offer, Omar Hassan al-Bashir, operate, operations, opposed, opposition, orchestrated, ordered, organizations, outdoors, ownership, past, Pastor, peace, people, permit, Persecution, petitioned, pictures, piece, place, police, prefers, prematurely, President, press, programs, prosecute, prosecutor, purpose, Ramadan, reallocations, receive, recent, recognized, recovering, region, religious, repossess, requested, restaurant, restricted, result, retaliation, rights, road, Roman Catholic, Roman Catholicism, Roman Catholics, Salma, schools, security, service, signing, simply, sold, south, staring, streets, structure, structures, struggles, struggling, Sudan, Sudan Council of Churches, Sudan Inter-religious Council, Sudanese, Sudanese Church of Christ, Sundays, support, surprise, survive, suspected, sustained, sweeps, targets, taught, temporary, thatched-grass, threats, town, tragedy, treated, trial, turning, uncertain, unknown, view, village, villagers, vocal, wake, warrant, wave, weapons, will, window, wish, workers, works, world, worried, worsen, worship, worshiping, worst, Zinab Adut | Leave a comment


Some of the defendants have challenged their detention in motions as illegal, but so far judges have ruled against them in South Florida.
Though the six defendants in the latest cases were detained in two separate interdiction operations, the circumstances of each detention were somewhat similar. The cases suggest that drug-traffickers employ similar tactics to ship narcotics by sea. The crew members are generally Colombian and Ecuadoran travelling on go-fast boats that began their journeys on either the Colombian or Ecuadoran coasts and then rendezvoused at sea to transfer bales containing cocaine or marijuana.
The first of the two latest cases began on June 28 when a U.S. government patrol aircraft spotted a go-fast boat traveling in international waters 157 miles south of the Guatemala/El Salvador border, according to a criminal complaint filed in federal court by a special agent of the Drug Enforcement Administration (DEA).
The U.S. Coast Guard cutter Stratton, patrolling in the area, launched a helicopter and a smaller boat to get a closer look, according to the complaint.
When the Coast Guard boat pulled alongside the go-fast its crew noticed that on one side it said its homeport was Manta in Ecuador — but when Ecuadoran authorities were contacted they could not confirm jurisdiction over the vessel, according to the complaint.
As a result, the Coast Guard crew boarded the go-fast, searched it and questioned the three men aboard: Banguera, Cheme and Valencia. The complaint said nine bales found aboard contained about 495 kilos of cocaine.
On July 20, the complaint says, the men were taken to Panama where they put on a plane bound for Fort Lauderdale when DEA agents arrested them.
This is one of the first court records in a high-seas drug-trafficking case to reveal how foreign nationals detained on their boats are transported to South Florida.
Prior criminal complaints simply stated that the detainees were arrested on arrival in South Florida but did not say how they were brought here or from where.
The second interdiction occurred on July 13when the Stratton detected a go-fast boat some 160 miles south of the Guatemalan coast.
When the Stratton launched a small boat to give chase, the go-fast stopped. A boarding party found 13 bales containing 680 kilos of cocaine, according to a DEA criminal complaint.
Then the boarding party detained the three men on board: Angulo, Benitez and Borja.
Juan de Jesús González, the attorney who represents Quiñónez Benítez, said his client is innocent.
Glenn Bruce Kritzer, attorney for Quiñones Angulo, said the government's evidence is questionable.


The seven kitties are lovely heroes who always keep my heart warm!
At Cream Heroes channel, I'm sharing fun little episodes that go on every day.
If you wonder what's going on with the seven kitties, do not forget to subscribe!


The Seattle Review is a full-color biannual specializing in long-form poetry and prose.
"We are looking for exceptional, risk-taking, intellectual and imaginative (as if these two could ever be separated) poems between ten and thirty pages in length."
" Poetry submissions of less than ten pages in length, and prose submissions of less than forty pages, will be returned unread." Accepts digital submissions year-round.
The only print journal wholly committed to the publication of longer works of poetry, novellas, and lyric essays.
Seattle Review can take up to 2 months to respond to submissions.


text:
;(function ($, exported, document, undefined) {

  exported.h = (function () {
    var e = document.createElement('div');
    return function (s) {
      e.innerText = (typeof(s) === 'undefined' ? '' : s).toString();
      return e.innerHTML.replace(/<(\/?redacted)>/g, '<$1>');
    };
  })();

  exported.md = (function () {
    var converter = new showdown.Converter({
      omitExtraWLInCodeBlocks:   true,
      simplifiedAutoLink:        true,
      literalMidWordUnderscores: true,
      strikethrough:             true,
      tables:                    true,
      simpleLineBreaks:          true,
      openLinksInNewWindow:      true
    });
    return function (s) {
      /* h() translates newlines into
 tags, so we
         have to translate them back to avoid confusing
         the markdown parser / reformatter. */
      return converter.makeHtml(h(s).replace(/
/g, "\n"));
    };
  })();

  $.all = function (l, fn) {
    var ok = true;
    $.each(l, function (i, o) {
      if (!fn(o)) { ok = false; }
    })
    return ok
  };

  /***************************************************
    pluralize(n, word [, words]) - Pluralize a number + unit.

    In the two-argument form, `word` will have an 's' appended to it if
    `n` is any quantity other than 1.  In the three-argument form, `word`
    is used as the singular unit, and `words` as the plural.

   ***************************************************/
  exported.pluralize = function (n, word, words) { // {{{
    if (typeof(n) === 'undefined') {
      n = 0;
    }
    if (n == 1) {
      return '1 '+word;
    }
    if (typeof(words) === 'undefined') {
      return n.toString()+' '+word+'s';
    }
    return n.toString()+' '+words;
  }
  // }}}

  exported.tnow = function () {
    var d = new Date();
    return d.getTime() / 1000;
  };

  /***************************************************
    tparse(d) - Parse `d` intelligently.

    If `d` is already a Date, it gets returned as-is. Strings are parsed
    according to the goofy way the SHIELD API formats dates/times.

   ***************************************************/
  exported.tparse = function (d) { // {{{
    if (typeof d == "string") {
      // because we insist on doing bad things with date formatting in the API...
      m = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/.exec(d);
      if (!m) {
        console.log("'%s' doesn't look like a date/time string...", d);
        return ""
      }

      d = new Date();
      d.setTime(Date.UTC(parseInt(m[1]),   // year
                        parseInt(m[2])-1, // month
                        parseInt(m[3]),   // day
                        parseInt(m[4]),   // hour
                        parseInt(m[5]),   // minute
                        parseInt(m[6]))); // second
      return d;
    }

    if (!(d instanceof Date)) {
      var _d = new Date()
      if (!isNaN(d)) {
        _d.setTime(d * 1000);
      }
      return _d;
    }

    return d;
  }
  // }}}

  /***************************************************
    tdiff(t1, t2) - Determine the number of seconds between two times

    The `t1` and `t2` arguments will first be passed through tparse(), so
    you can safely pass strings and Date objects with reckless abandon.

   ***************************************************/
  exported.tdiff = function (t1, t2) { // {{{
    return parseInt((exported.tparse(t2).getTime() / 1000)
                  - (exported.tparse(t1).getTime() / 1000));
  }
  // }}}

  /***************************************************
    duration(s) - Generate a human-readable duration, given a number of seconds.

   ***************************************************/
  exported.duration = function (t) { // {{{
    var d, h, m;
      t = parseInt(t);
      if (t < 0) { t = 0; }
      if (t < 60) {
        return t.toString() + "s";
      }
      if (t < 60 * 60) {
        return parseInt(t / 60).toString() + "m";
      }
      if (t < 60 * 60 * 24) {
        h = parseInt(t / (60 * 60));
        m = (t - h*(60 * 60)) / 60;
        return parseInt(h).toString() + "h " + parseInt(m).toString() + "m";
      }
      if (t < 60 * 60 * 24 * 7) {
        d = parseInt(t / (60 * 60 * 24));
        h = (t - d*(60 * 60 * 24)) / (60 * 60);
        return parseInt(d).toString() + "d " + parseInt(h).toString() + "h";
      }
      return parseInt(t / (60 * 60 * 24)).toString() + "d";
  }
  // }}}

  /***************************************************
    trelative(d, threshold, fmt) - Intelligent "from now" durations

    If the time between `d` and now is larger than `threshold`, an absolute
    date/time string, of the format `fmt` (as interpreted by `strftime()`)
    will be returned.

    Otherwise, a duration of the difference between `d` and now is returned,
    suffixed with the text " ago".

    This is useful for providing accuracy at both ends of a relative date/time
    spectrum - small differences will render as '5m ago' or '12h ago', whereas
    large differences just show up as the full date/time.

   ***************************************************/
  exported.trelative = function (d, threshold, fmt) { // {{{
    d = exported.tparse(d);
    var now = new Date();
    threshold = threshold * 1000;
    if (threshold > 0 && now.getTime() - d.getTime() < threshold) {
      return duration(tdiff(d, now)) + " ago";
    }

    return strftime(fmt || "%x %X", d);
  }
  // }}}

  /***************************************************
    task_id(t) - Truncate a Task UUID, maintaining identifiability

    Task UUIDs are long, too long for humans to be able to differentiate
    or recognize.  `task_id` takes a task object (which has a `uuid` field),
    truncates it to a reasonable length (6-12 chars) and returns it.

   ***************************************************/
  exported.task_id = function (t) { // {{{
    if (t instanceof Object) {
      if (!'uuid' in t) { return "[unknown]" }
      t = t.uuid;
    }
    return t.toString().substr(0,7);
  }
  // }}}

  /***************************************************
    banner(msg, [type]) - Display a small banner message for a limited time.

    Generates and displays a small banner message, useful for notifications,
    status updates, error handling, and more.

    The `msg` argument is required, and contains the text to include in the
    banner itself.  The optional `type` argument specifies a CSS class to
    attach to the banner element for stylistic purposees.  Common `type` values
    include "info" (the default), and "error"

   ***************************************************/
  exported.banner = (function () { // {{{
    var timer = undefined;
    var $banner = null;

    return function (message, type) {
      if (typeof timer !== 'undefined') {
        window.cancelTimeout(timer);
        timer = undefined;
      }

      if (!$banner) {
        $(document.body).append(
          $banner = $('
')
            .on('click', 'a', function (event) {
              event.preventDefault();
              event.stopPropagation();
              $banner.hide();
            })
            .hide());
      }

      if (typeof type == 'undefined') { type = 'info' }
      $banner.show().template('banner', {
        type:    type,
        message: message
      });
      if (type !== 'error') {
        time = window.setTimeout(function () {
          $banner.hide();
        }, 7000);
      }
    };
  }());
  // }}}

  /***************************************************
    modal(html) - Display a modal dialog that the user must interact with.

    Display a modal dialog box, which occludes the main page and prevents
    interaction with the rest of the interface.  The `html` argument is the
    complete HTML code (or a DOM object) to place inside the frame of the
    modal dialog.

   ***************************************************/
  exported.modal = (function () { // {{{
    var $wash = $('

').hide();
    $(document.body).append($wash);

    $wash.on('click', '.closes, [rel="close"]', function (event) {
      event.preventDefault();
      $wash.hide();
    });

    return function (html) {
      if (html === true) {
        $wash.hide();
        return;
      }
      var $window = $(html);
      $wash.hide().empty().append($window).show();
      return $window;
    }
  }());
  // }}}

  /***************************************************
     api(...) - Make a single AJAX call

   ***************************************************/
  exported.api = (function () { // {{{
    var $key = 10000;
    var $inflight = {};

    return function (options, multi) {
      $key++;
      if (!multi) {
        $.each($inflight, function (i,ajax) {
          ajax.abort();
        });
        $inflight = {};
      }

      if (!options) {
        return;
      }

      if ('data' in options) {
        options.data = JSON.stringify(options.data);
        options.contentType = 'application/json';
      }

      var e = 'An unknown error has occurred.';
      if (typeof(options.error) === 'string') {
        e = options.error;
        delete options.error;
      }

      var complete = options['complete'];
      options.complete = function () {
        delete $inflight[$key];
        if (typeof(complete) !== 'undefined') {
          return complete.apply(this, arguments);
        }
      };

      if (!('error' in options)) {
        options.error = function (xhr) {
          if (xhr.status == 0) {
            return; /* jquery was aborted; no point in erroring... */
          }
          if (xhr.status == 401) {
            document.location.href = '/';
            return
          }
          if (xhr.status == 403) {
            $('#main').template('access-denied', { level: 'generic', need: 'elevated' });
            return
          }
          $('#main').template('error', {
            http:     xhr.status + ' ' + xhr.statusText,
            response: xhr.responseText,
            message:  e,
          });
        };
      }

      $inflight[$key] = $.ajax(options);
      return $inflight[$key];
    };
  })();
  // }}}

  /***************************************************
    website() - Return the base URL of this SHIELD, per document.location
  ***************************************************/
  exported.website = function () { // {{{
    return document.location.toString().replace(/#.*/, '').replace(/\/$/, '');
  };
  // }}}

  /***************************************************
    $(...).serializeObject()

    Given a <form> object, `serializeObject()` will return a simple
    Javascript object (suitable for passing to api()), based on the
    fields present in the form.

    Any fields with dotted names (like config.host) will be expanded
    into multi-level javascript objects, like: { config: { host: x }}

   ***************************************************/
  $.fn.serializeObject = function (flat) { // {{{
    var a = this.serializeArray();
    var o = {};

    if (flat) {
      for (var i = 0; i < a.length; i++) {
        o[a[i].name] = a[i].value;
      }

    } else {
      for (var i = 0; i  1) {
          if (!(parts[0] in t)) { t[parts[0]] = {}; }
          t = t[parts[0]];
          parts.shift();
        }
        t[parts[0]] = a[i].value;
      }
    }

    return o;
  };
  // }}}

  /***************************************************
    autofocus() - Set focus to the first '.autofocus' element

   ***************************************************/
  $.fn.autofocus = function () { // {{{
    var $self = this;
    window.setTimeout(function () {
      $self.find('.autofocus').focus();
    }, 150);
    return $self;
  };
  // }}}

  /***************************************************
    $(...).reset()

    Given a <form> object, `reset()` will reset the form back
    to a pre-validation state, but leave all of the entered
    data intact.

   ***************************************************/
  $.fn.reset = function () { // {{{
    this.find('.error, [data-error]').hide();
    return this;
  };
  // }}}

  /***************************************************
    $(...).missing(lst)

    Given a <form> object, `missing(lst)` will walk the `lst`
    argument, a list of field names, and activate the "missing"
    error for each.  Other errors will be suppressed.

   ***************************************************/
  $.fn.missing = function (fields) { // {{{
    for (var i = 0; i < fields.length; i++) {
      this.error(fields[i], 'missing');
    }
  };
  // }}}

  /***************************************************
    $(...).error(message)
    $(...).error(object)
    $(...).error(field, type)

    Given a <form> object, `error()` shows and hides error
    messages, on a per-field basis, or form-wide.

    If only one argument, a string, is given, it is treated as
    an error message string, and placed in the form-wide error
    container.

    If instead the argument is an object, it will interpret
    the top-level keys thusly:

        "error"    A form-wide error will be issued.
        "missing"  The 'missing' error for each field in the
                   value (a list) will be activated.

    In the two-argument version, the errors will be activated
    on the named field.  This mode only operates on a single
    field at a time.

    In both cases, other errors messages at the same level
    will be suppressed.

   ***************************************************/
  $.fn.error = function () { // {{{
    if (arguments.length == 1 && typeof(arguments[0]) === 'string') {
      this.find('.error').html(arguments[0]).show();

    } else if (arguments.length == 1 && typeof(arguments[0]) === 'object') {
      var what = arguments[0];
      if ('error'   in what) { this.error(what.error);     }
      if ('missing' in what) { this.missing(what.missing); }

    } else if (arguments.length == 2) {
      var what = arguments[1];
      this.find('[data-field="'+arguments[0]+'"] [data-error]').each(function (i, e) {
        var $e = $(e);
        $e.toggle($e.is('[data-error="'+what+'"]'));
      });

    } else {
      throw '$(...).error() given the wrong number of arguments';
    }
  };
  // }}}

  /***************************************************
    $(...).isOK()

    Given a <form> object, `isOK()` returns true if there are
    no visible error messages, and the form can be submitted.

   ***************************************************/
  $.fn.isOK = function () { // {{{
    return this.find('.error:visible, [data-error]:visible').length == 0;
  }; // }}}

  /***************************************************
     $(...).roles(sel) - show a role selection menu

     A new role selection menu element will be created,
     based off of the attributes of the target element,
     and then added into the DOM, positioned absolutely
     so as to appear at the (x,y) coordinate of the top
     left point of the target element (effectively
     obscuring the initiating UI widget).

     The target may have the following data attributes:

      - data-type  Either "system" or "tenant"
      - data-role  The internal name of the pre-selected
                   role.  Valid values are based on the value
                   of data-tyep:

                     system: admin, engineer, or technician
                     tenant: admin, manager, or operator

   ***************************************************/
  $.fn.roles = (function () { /// {{{
    var elem, menu, fn;
    fn = function () { }
    $(document.body).on('click', '.roles-menu', function (event) {
      event.stopPropagation();
      event.preventDefault();

      var $role = $(event.target).closest('div[data-role]');
      if ($role.length == 1) {
        elem.attr('data-role', $role.attr('data-role'));
        elem.html($role.find('strong').html());
        menu.remove();
        fn(elem, $role.attr('data-role'));
        menu = elem = undefined;
        fn = function () { };
      }
    });

    return function (sel, callback) {
      this.on('click', sel, function (event) {
        event.stopPropagation();
        event.preventDefault();

        fn = callback;
        elem = $(event.target);
        var type = elem.extract('type') || 'system';
        var role = elem.extract('role');

        if (menu) { menu.remove(); }
        elem = elem;
        menu = $($.template('roles-menu', {
            type    : type,
            current : role
          })).css({
            display  : 'block',
            position : 'absolute',
            top      : elem.offset().top + 4,
            left     : elem.offset().left + 4
          });
        $(document.body).append(menu);
      });
      return this;
    };
  })();
  // }}}

  /***************************************************
     $(...).userlookup(sel) - wire up a user lookup field

   ***************************************************/
  $.fn.userlookup = function (sel, opts) { // {{{
    opts = $.extend({}, {
      filter: function (l) { return l },
      onclick: function () { }
    }, opts);

    var first = undefined;
    var timer;

    this.on('keydown', sel, function (event) {
      var $field = $(event.target);

      if (event.which == 13) { /* ENTER */
        event.preventDefault();

        if ($('.userlookup-results li').length > 0) {
          opts.onclick(first);
        }
        $('.userlookup-results').remove();
        $field.val('');
      }
    }).on('keyup', sel, function (event) {
      var $field = $(event.target);

      if (timer) { window.clearTimeout(timer) }
      var search = $field.val();
      console.log("search: '%s'", search);
      if (search.length >= 3) {
        timer = window.setTimeout(function () {
          api({
            type: 'POST',
            url:  '/v2/ui/users',
            data: {search: search},
            success: function (data) {
              if (typeof(opts.filter) == 'function') { data = opts.filter(data); }
              first = data[0];

              $('.userlookup-results').remove();
              $(event.target).after(
                $($.template('userlookup-results', data))
                  .on('click', 'li', function (event) {
                    event.preventDefault();
                    event.stopPropagation();

                    opts.onclick(data[$(event.target).extract('idx')]);

                    $('.userlookup-results').remove();
                    $field.val('');
                  })
              );
            }
          });
        }, 400);
      } else {
        console.log('removed');
              $('.userlookup-results').remove();
      }
    });
    return this;
  };
  // }}}

  /***************************************************
     $(...).extract(key) - find and extract data

     This helper wraps up the common idiom:

       $target.closes(['data-x']).data('x')

     To find the nearest ancestor (or self) that has a
     data-something attribute set, and then extract that
     value via jQuery's .data()

   ***************************************************/
  $.fn.extract = function (key) { // {{{
    key = 'data-'+key;
    return this.closest('['+key+']').attr(key);
  };
  // }}}

  /***************************************************
     $(...).transitionClass(class1, class2)

     This helper wraps up the common idiom:

       $target.removeClass('class1').addClass('class2');

     which is a sort of toggleClass() with two classes,
     representing a transition from class1 -> class2.

   ***************************************************/
  $.fn.transitionClass = function (class1, class2) { // {{{
    if (class1) { this.removeClass(class1); }
    if (class2) { this.addClass(class2); }
    return this;
  };
  // }}}

  /***************************************************
     $(...).validate(data) - Validate a Plugin configuration form.

   ***************************************************/
  $.fn.validate = function () { // {{{
    var $form = this;

    $form.find('[data-field]').each(function (i, ctl) {
      var $ctl  = $(ctl);
      var type  = $ctl.attr('data-type');
      var field = $ctl.attr('data-field');
      var value = $ctl.find('[name="'+field+'"]').val() || '';

      console.log('checking field "%s" of type "%s" (value="%s")', field, type, value);

      if ($ctl.is('.required') && value == "") {
        $form.error(field, 'missing');
        console.log('%s is required (value="%s")', field, value);

      } else if (value != "") {
        switch (type) {
        case "pem-x509":
          if (!value.match(/^\s*-----BEGIN CERTIFICATE-----[\s\S]+-----END CERTIFICATE-----/)) {
            $form.error(field, 'invalid');
          }
          break;
        case "pem-rsa-pk":
          if (!value.match(/^\s*-----BEGIN (RSA )?PRIVATE KEY-----[\s\S]+-----END (RSA )?PRIVATE KEY-----/)) {
            $form.error(field, 'invalid');
          }
          break;
        case "abspath":
          console.log(ctl, ' checking value abspath (', value, ')');
          if (!value.match(/^\//)) {
            $form.error(field, 'invalid');
          }
          break;

        case "port":
          console.log(ctl, ' checking value port (', value, ')');
          if (!value.match(/^[0-9]+/)) {
            $form.error(field, 'invalid');
          } else {
            var n = parseInt(value);
            if (n < 1 || n > 65535) {
              $form.error(field, 'invalid');
            }
          }
          break;
        }
      }
    });
    return this;
  };
  // }}}

  /***************************************************
     bytes(x) - Format a file size

     Given an integer number of bytes, formats and returns a more
     human-readable string using units of n*1024b, to make sizes
     more manageable.

   ***************************************************/
  exported.bytes = function (x) { // {{{
    var sign = "";
    if (x < 0) {
      x = -x;
      sign = "-";
    }

    var units = ["b", "K", "M", "G", "T"];
    while (units.length > 1 && x >= 1024) {
      units.shift();
      x /= 1024;
    }
    return sign + (Math.round(x * 10) / 10).toString() + units[0];
  };

  /***************************************************
     $(...).readableToBytes(x) - Format a file size

     Given a human-readable string using units of n*1024b,
     formats and returns an integer number of bytes, to make sizes
     more manageable.

   ***************************************************/
  exported.readableToBytes = function (x) {
    var powers = {'': 0, 'k': 1, 'm': 2, 'g': 3, 't': 4};
    var regex = /(\d+(?:\.\d+)?)\s?(k|m|g|t)?b?/i;
    var res = regex.exec(x);
    return res[1] * Math.pow(1024, powers[(res[2]||"").toLowerCase()]);
  };
  // }}}

  /***************************************************
     $(...).optgroup() - Set up an optgroup widget

   ***************************************************/
  $.fn.optgroup = function () { // {{{
    this.each(function (i, optgroup) {
      var $optgroup = $(optgroup);
      $optgroup.find('li').on('click', function (event) {
        $optgroup.find('li.selected').removeClass('selected');
        $(event.target).closest('li').addClass('selected');
      });
    });
    return this;
  };
  // }}}

  /***************************************************
     optgroup(selected, list) - Return HTML for an optgroup set

   ***************************************************/
  exported.optgroup = function (selected, list) { // {{{
    if (arguments.length == 1) {
      list = selected;
      selected = list[0];
    }

    var html = "";
    for (var i = 0; i < list.length; i++) {
      if (list[i] == selected) {
        html += '
'+list[i]+'
';
      } else {
        html += '
'+list[i]+'
';
      }
    }
    return html;
  };
  // }}}

  /***************************************************
     $(...).timespec() - Summarize a Timespec Form

   ***************************************************/
  $.fn.timespec = function () { // {{{
    var $form = $(this);
    var d = $form.serializeObject();
    var s = '';

    switch ($form.find('[data-subform].selected').extract('subform')) {
    case 'schedule-hourly':
      var ampm = $form.find('#schedule-hourly .ampm .selected').text();
      return 'every '+d.hourlyn+' hour from '+d.hourlyat+ampm;

    case 'schedule-daily':
      var ampm = $form.find('#schedule-daily .ampm .selected').text();
      return 'daily '+d.dailyat+ampm;

    case 'schedule-weekly':
      var ampm = $form.find('#schedule-weekly .ampm .selected').text();
      var wday = $form.find('#schedule-weekly .wday .selected').text();
      return 'weekly at '+d.weeklyat+ampm+' on '+wday;

    case 'schedule-monthly':
      var ampm = $form.find('#schedule-monthly .ampm .selected').text();
      var mday = $form.find('#schedule-monthly .mday .selected').text();
      d.monthlynth = d.monthlynth.replace(/\s*(th|rd|st)$/, '')+'th';
      if (mday == 'day') {
        return 'monthly at '+d.monthlyat+ampm+' on '+d.monthlynth;
      } else {
        return d.monthlynth+' '+mday+' at '+d.monthlyat+ampm;
      }
    }
  };
  // }}}

  /***************************************************
     $(...).submitting($bool) - Mark a form as "submitting"

   ***************************************************/
  $.fn.submitting = function (on) { // {{{
    this.each(function (i, form) {
      var $form = $(form);
      $form.find('button[data-alt]').each(function (i, b) {
        var $b = $(b);
        if (on) {
          $b.attr('data-alt-orig', $b.html())
            .prop('disabled', true)
            .html($b.attr('data-alt'));
        } else {
          $b.html($b.attr('data-alt-orig'))
            .prop('disabled', false);
        }
      });
    });
    return this;
  };
  // }}}
})(jQuery, window, document);

redpajama_set_name: RedPajamaGithub


Imagine that your reception will be held in extraordinary stables with vaulted terracotta erected over a century ago by ingenious Tuscan masons with aisles supported by columns of travertine, and candid mangers of white marble; think to live with your loved ones the charm of an old village remained unchanged over the centuries, spending the days before the wedding amongst walls marked by history, oaks and conifers trees and meadows surrounded by roses and magnolias.
However you have been imagined such an important day in your life, we would be delighted to welcome you with kindness and professionality in this special and intense place.
We are in a small ancient village surrounded by forests and the hills of Montagnola Senese, an unspoilt area half an hour from Siena. The stables (Scuderie) were built and inaugurated by Count Luigi Bichi Borghesi and his sister Giuditta, horse great lovers, in 1890. Today we rent these so special Scuderie, thanks their capacity (220 p.) and particularity, for weddings and events.
The three large halls are all surmounted by groin vaults. Delicate Montagnola Senese marble mangers and white travertine columns embellish the room that was used as the actual stable. On the delicately decorated walls, imitation wall panelling created using the trompe l'oeil technique protected the walls against kicks from the horses, and the stalls once used for the best horses are now used as a cloakroom. The collection of photographs from the early 20th century, taken from the family archives, tells of stories of life lived in the village.


Good and bad news on climate change.
Climate change and Louisiana floods.
Global warming polarizes more than abortion. Will it be dropped like population control when that became too political?
Oceanic bacteria offset climate change.
Climate Change; Dreamers and plodders need to unite.
As climate warms, new dark age looms.
Climate Change could make driving more hazardous!
Climate Change heating up lakes, threatening water supplies.
Climate Change Conference expected to bring historic emissions deal.


text:
Zoltan (Zvi) Kluger (8 de fevereiro de 1896 - 16 de maio de 1977) foi um fotógrafo israelense. Ele é conhecido como um dos fotógrafos mais importantes do Mandato da Palestina.

Biografia

Zoltan Kluger nasceu na cidade de Kecskemet, na Hungria, em 1896. Durante a Primeira Guerra Mundial, ele serviu como fotógrafo aerotransportado nas tropas de aviação austro-húngaras. No final da década de 1920 emigrou para Berlim, capital da Alemanha, onde trabalhou como fotógrafo de imprensa. Em abril de 1933, com a ascensão dos nazistas ao poder, chegou à Palestina como turista, e depois recebeu um certificado britânico de permanência, graças à intervenção de Moshe Sharett. Mais tarde naquele ano, Nachman Shifrin, que Kluger conheceu em Berlim, fundou a "East Photography Society for the Press" em Tel Aviv. Em 1934, Kluger juntou-se à Shifrin e tornou-se sócio e fotógrafo-chefe.

Os clientes proeminentes de Kluger eram o departamento de fotografia JNF e Keren Hayesod, que enviou Kluger para fotografar empresas econômicas e imigrantes. Em 1937 Kluger tirou uma série de 250 fotografias aéreas, encomendadas por Zalman Schocken . Foi publicado o livro "Ella Pnei Israel" no qual as fotografias de Kluger são acompanhadas de um texto de Moshe Shamir. Durante a Segunda Guerra Mundial, Kluger fotografou os soldados das companhias judaicas da Palestina, que foram subordinados ao Regimento Real de East Kent, the Buffs. Esses "Palestine Buffs" tornar-se-iam a gênese da futura Brigada Judaica que lutou na Itália em 1945.

Kluger casou-se com Sarah e os dois tiveram um filho, Paul, que foi enviado no início dos anos 1950 pela Força Aérea de Israel para estudar nos Estados Unidos e lá permaneceu. Em 1958, Kluger e sua esposa imigraram para os Estados Unidos seguindo seu filho. Sua esposa ameaçou cometer suicídio se eles não seguissem seu filho. Kluger abriu uma loja de fotografia em Nova York. Ao mesmo tempo, ganhava a vida filmando eventos, principalmente da comunidade húngara em Nova York. Pouco depois que o casal chegou aos Estados Unidos, sua esposa adoeceu e morreu, e ele se casou novamente com Irena. A mãe e a irmã de Kluger, Elsa sobreviveu ao Holocausto na Hungria . Sua mãe morreu em 1949, enquanto sua filha, marido e filhos emigraram para os Estados Unidos em 1956 e se estabeleceram na Califórnia. Kluger e sua irmã renovaram seu relacionamento. Kluger permaneceu nos Estados Unidos até sua morte.

Zoltan Kluger morreu em Manhattan, Nova York, em 1977, deixando um arquivo de cerca de 50.000 negativos distribuídos entre vários arquivos públicos, incluindo a coleção do Keren Hayesod nos Arquivos Sionistas Centrais, a coleção do Fundo Nacional Judaico, o Gabinete de Imprensa do Governo, os Arquivos do Estado e os Arquivos da FDI. Em 1968, uma coleção de cerca de 40.000 negativos dos anos 1933-1948 chegou ao Arquivo do Estado, e em 2017 toda a coleção foi carregada para o Arquivo do Estado, que inclui um mecanismo de busca de fotos e pode ser usado.

Exposições
As obras de Zoltan Kluger foram exibidas em museus e galerias em Israel, incluindo o Museu de Israel. Em 2008, a primeira exposição individual de Zoltan Kluger foi realizada no Museu Eretz Israel em Tel Aviv. A exposição foi nomeada "Zoltan Kluger - Fotógrafo Principal, 1958-1933", com curadoria da Dra. Ruth Oren e Guy Raz.

Galeria

Referências

Ligações externas

 Pedido de Zoltan Kluger para cidadania no Mandato da Palestina no Arquivo do Estado de Israel.

Veja também
Fotógrafos ativos no Mandato Palestina 1918-1948

 Najib Anton Albina (1901-1983), fotógrafo mestre do Museu Arqueológico da Palestina
 Colônia Americana, Jerusalém#Fotografia : veja seu Departamento Fotográfico, mais tarde Matson Photographic Service, ativo c. 1900-1940
 Armênios em Israel#Fotógrafos : veja para fotógrafos armênios em Jerusalém desde 1857
 Ze'ev (Wilhelm) Aleksandrowicz (1905-1992), fotógrafo nascido na Polônia, ativo no Mandato Palestina entre 1932 e 1935
 Ya'acov Ben-Dov (1882-1968), fotógrafo israelense e pioneiro da cinematografia judaica na Palestina
 Khalil Raad (1854–1957), conhecido como "o primeiro fotógrafo árabe da Palestina"
 David Rubinger (1924-2017), fotógrafo israelense, autor de foto de pára-quedistas no Muro das Lamentações na Guerra dos Seis Dias
 Samuel Joseph Schweig (1905-1985), fotógrafo de paisagem e arqueologia no Mandato da Palestina e no início de Israel
 :de:Herbert Sonnenfeld (1906-1972), fotógrafo judeu alemão, marido de Leni, fotografado no Mandato da Palestina na década de 1930
 Leni Sonnenfeld (1907-2004), fotógrafa judia alemã, esposa de Herbert, fotografou Israel nos primeiros anos de sua existência
 Rudi Weissenstein (1910-1999), fotógrafo israelense, autor da icônica foto da Declaração de Independência

Judeus da Hungria
Judeus de Israel
Mortos em 1977
Nascidos em 1896
Fotógrafos da Hungria


Softens and helps remove overgrown cuticles.
Damaged cuticles give a neglected appearance to nails and make nice hands look dull.
Its thixotropic formula softens and helps remove overgrown cuticles in one application. Apply directly on cuticles with the brush. In a few seconds overgrown cuticles are softened and can be "erased" with the MANICURE STICK wrapped with cotton.
Alkali agent, which gives this product its high pH.
Free from formaldehyde, phthalates, sodium laureth sulfate, paraben and fragrance.
Apply one coat with brush around the clean contour of the nail. Allow to act for one minute and then gently roll back the cuticle with the MANICURE STICK, which has been covered with cotton wool. Wash well with soapy water and dry nails before continuing with your manicure.
Never use a metal instrument to push back cuticle, as this can injure the matrix. This product contains potassium hydroxide. It is not recommended to use this product on inflamed or injured skin.
Find additional and complementary solutions to your nail concerns at MAVACADEMY.