text:
iWave, Inc. (formerly known as Intelligent Wave Phils., Inc.) began as the Manila Representative Office of Intelligent Wave, Inc. of Tokyo, Japan in June 1990. It was established to provide a two-fold task of supporting its Philippine clients as a liaison office in conducting research and development on business information systems adapted to the cutting edge technology available to the firm.
The representative office was effective on these tasks. So effective was it, that on July 1991, the Manila Representative Office was incorporated as a Philippine corporation, to be known as Intelligent Wave Philippines, Inc. or IWPI. This restructuring was inevitable owing to the rapidly increasing demand for the services and products that have been developed and distributed by the representative office. More importantly, it was to be the start of an unsurpassed organization and industry growth of IWPI.
iWave and Payment Systems
The Manila Representative Office was incorporated as a Philippine corporation, to be known as Intelligent Wave Philippines, Inc. or IWPI…See more
Moving offices
iWave started in the early 90's with its first headquarters at the 6th floor of the Maxicare Building (previously known as Equitable Building) at Salcedo St. in Legaspi Village, Makati City. When it expanded its operations in the late 90's, a second office at the 11th floor of the neighbouring Fedman Building was occupied. The new Millennium is significantly marked by iWave when it moved its offices to the 3rd floor of the Hatch Asia Building at the Fort Bonifacio Global City in Taguig City in 2001. Finally, in 2005 iWave went back to Makati City and bought its own office units. Now, iWave's headquarters is at the 9th floor of the Philippine AXALife Centre at Sen. Gil Puyat Ave., Makati City.
iWave provides turn-key solutions to the information systems requirements of a cross-section of industries. iWave's staff of systems analysts and software engineers are experienced in all aspects and stages of the Software Development Lifecycle (SDLC)..
The surge in the use of smartphones and tablets has led software companies to complement their applications with the necessary mobile components. iWave's core competency lies in mission critical applications especially in the field of banking and trading. Delving into mobile computing may just be the right direction for iWave in extending its core competency and in providing better service and products to our clients. The future is in mobility…
info@iwave.com.ph
Trunklines: (+632) 887-6104 / (+632) 887-4164 / (+632) 4035273
Fax: (+632) 887-6123
9/F Philippine AXALife Centre, 1286 Sen. Gil J. Puyat Avenue, 1200 Makati City


Creative Support Alternatives provides Supported Living Services (SLS) in San Diego County to enable adults with developmental disabilities to live in their own home and fully participate as members of their chosen community. All of our Supported Living Services are vendored through the San Diego Regional Center.
SLS consists of the teaching, training, and companionship supports that enable people with developmental disabilities to live independently in their chosen community. SLS are more intensive and can provide companionship services versus ILS.
Locate, acquire, and maintain affordable housing through lease or home ownership.
Develop a support team, which may include live-in and/or come-in support. Support teams are developed according to an individual's specific needs, and can range from one hour to twenty-four hours per day of support.
Complete daily living activities, such as cooking, cleaning, shopping, and personal care.
Ensure optimum health through access to healthcare, medication management, and development of healthy lifestyle routines.
Build open person-specific strategies to promote personal safety.
Create personalized twenty-four hour emergency backup support.
Access neighborhood stores/services and participate in local organizations and events.
Fully utilize available resources such as Social Security benefits, In-Home Supportive Services, housing assistance programs, and mental health services.
Manage finances to meet financial responsibilities, maintain long term financial stability, and minimize risk of exploitation.
Develop behavioral supports which promote people's positive reputations.
Facilitate relationships that embrace mutual support, friendship, and companionship.
Identify and acquire adaptive equipment and technology.
Explore employment interests, job development, and receive on-the-job support.
Advocate for equitable access to all a community and its resources have to offer.
Perform other services in order to assist people to live independently in the community.


text:
Филодриасы () — род змей семейства ужеобразных. Род включает в себя 18 видов, эндемиков Южной Америки. Называются также кустарниковые змеи.

Описание
У змей рода Philodryas голова морфологически выделена от шеи с выдающимся кантусом. Глаза среднего или большого размера. Зрачки круглые. Тело цилиндрическое либо немного латерально сплющено. Хвост длинный. Дорзальные чешуи образуют от 17 до 23 рядов в середине тела, подхвостовые чешуи разделены.

Мелкие верхнечелюстные зубы (от 12 до 15) отделены от двух крупных клыков с бороздками, расположенных сразу за задней границей глаз.

Яд
Хотя ужеобразные, как правило, являются безвредными, филодриасы являются заднебороздчатыми, то есть имеют сложенные назад клыки с бороздками и способны к ядовитому укусу. Однако, яд этих змей малотоксичен.

Виды и ареал
Род включает 20 видов:
 Philodryas aestiva (A.M.C. Duméril, Bibron & A.H.A. Duméril, 1854) — Бразильский филодриас, север Аргентины, Боливия, юго-восток Бразилии, Парагвай, Уругвай;
 Philodryas agassizii (Jan, 1863)
 Philodryas argenteus (Daudin, 1803)
 Philodryas arnaldoi (Amaral, 1932) — Филодриас Амарала, юго-восток Бразилии;
 Philodryas baroni Berg, 1895 — Длинноносый филодриас, или аргентинский филодриас, север Аргентины;
 Philodryas chamissonis (Wiegmann, 1834) — Чили;
 Philodryas cordata Donnelly & Myers, 1991
 Philodryas georgeboulengeri (Grazziotin et al., 2012)
 Philodryas laticeps Werner, 1900
 Philodryas livida (Amaral, 1923)
 Philodryas mattogrossensis Koslowsky, 1898 — Боливия, юго-запад Бразилии, Парагвай;
 Philodryas nattereri Steindachner, 1870 — запад и центр Бразилии, Парагвай;
 Philodryas olfersii (Lichtenstein, 1823) — Боливийский филодриас, или бразильский кустарниковый филодриас, Аргентина, Боливия, запад Бразилии, Парагвай, восток Перу, Уругвай;
 Philodryas patagoniensis (Girard, 1857) — Патагонский филодриас, Аргентина, Боливия, Бразилия;
 Philodryas psammophidea Günther, 1872 — Аргентина, запад и юг Бразилии;
 Philodryas simonsi Boulenger, 1900 — Эквадор, Перу
 Philodryas tachymenoides (Schmidt & Walker, 1943) — Чили, Перу;
 Philodryas trilineata (Burmeister, 1861)
 Philodryas varia (Jan, 1863)
 Philodryas viridissima (Linnaeus, 1758) — Изумрудный филодриас, север Южной Америки в долине Амазонки и реки Парагвай.

Примечания

Ссылки
 Wagler, J.G. 1830. Natürliches System der Amphibien, mit vorangehender Classification des Säugthiere und Vögel. Ein Beitrag zur vergleichenden Zoologie. J.G. Cotta. Munich, Stuttgart, and Tübingen. vi + 354 pp. (Genus Philodryas, p. 185.)
 И. С. Коршунов, К вопросу о репродуктивной биологии змей рода Philodryas Wagler, 1830 (Colubridae, Xenodontinae) // Научные исследования в зоологических парках. Выпуск 20, стр. 25-28. 2006. Москва

Филодриасы
Пресмыкающиеся Южной Америки

redpajama_set_name: RedPajamaWikipedia


text:
Q: Button with an image and text I have a button on which i put an image
I've been told i need to reduce the size of the image by 30%, so i created a scale drawable and put that in the selector of the button
unfortunately, the image does not display on the button as expected.
here is my code for the button
<Button
    android:id="@+id/btnMain"
    style="@style/buttonMenuAppearance"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableTop="@drawable/selector_ic_main"
    android:text="@string/btnMain" />

my selector
    <selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/scaled_ic_main_disabled" android:state_enabled="false"></item>
    <item android:drawable="@drawable/ic_main_pressed" android:state_enabled="true" android:state_pressed="true"></item>
    <item android:drawable="@drawable/ic_main_normal" android:state_enabled="true" android:state_pressed="false"></item>
    <item android:drawable="@drawable/ic_main_normal"></item>

    </selector>

my scaled drawable
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_main_disabled"
android:scaleGravity="center_vertical|center_horizontal"
android:scaleHeight="30%"
android:scaleWidth="30%" />

the way it looked before the scale :

the way it looks after the scale :
why isnt my image showing up ?

A: Your "scaled image" is called "scale" not "scaled_ic_main_disabled" so your selector is not displaying anything (I guess you don't have any objects called "scaled_ic_main_disabled")
Change "scaled_ic_main_disabled" to "scale" in your selector.

redpajama_set_name: RedPajamaStackExchange


text:
Ubuntu 17.10 beta 4 update: new emoji and a better notification system
Ubuntu 17's beta 4 has just landed and we're happy to report that we're now seeing some new emoji in the latest beta version.
Ubuntu 17.04 introduced a new emoji for the Ubuntu logo.
The new emoji looks very similar to the one we've seen before, and it's actually pretty fun to play with, too.
Here's how you can use it:You can use the emoji to add text to a message, or use it to indicate a location.
If you use the app to add a new email address, the emoji will automatically update its contact info to the new address.
You can also set a reminder for your phone to remind you of an upcoming appointment.
The beta also includes a new notification system that uses a notification center icon in the status bar, and a new gesture that launches the notification center app and displays a notification banner.
This gesture has been around for a while in Ubuntu 17 and is still being used in the beta.
If you're curious about all the changes that are included in the Ubuntu 17 beta, check out our list of the best features in the update.
Ubisoft has been releasing some other important updates to its Unity software over the past few months, including the launch of the new version of Unity 5.0.
The latest Unity update brings some big improvements to the game, like new physics and animations, improved lighting and particle effects, and more.
Ubiquity, a popular cloud storage service, also announced a new version for its cloud version of its Unity desktop software.
The new version brings a few notable improvements to Unity as well:It can now be installed as a single Unity project.
This is useful for users who want to use the same Unity project for all their Cloud storage projects, which is why Unity 5's default cloud version is Unity 5 and not Unity 7.
You don't need to switch to the default Unity version to use this new version.
In the meantime, the newest version of the Unity desktop suite, Unity 5 Pro, is also available as a cloud version.
It brings several new features, like the ability to share files between multiple users on one computer.
You can also access Unity from a web browser.
We recommend using Chrome or Firefox on Windows.
Ubicomp is a software company that specializes in cloud computing.
The company also offers cloud-based virtualization solutions for Windows, Mac, and Linux.
In recent months, the company has been adding new cloud-powered services to its cloud offerings.
The first of these, Cloud VMWare Cloud, is now available for Windows and Linux, and the company is also rolling out support for its Azure virtual cloud service.
In addition to offering cloud-hosted services, Azure offers support for virtualization on Windows, macOS, and Ubuntu servers.
Rodos: A Linux-based operating system for smartphones
How water treatment plants work: How wastewater treatment works

redpajama_set_name: RedPajamaCommonCrawl


text:
Wi-Fi 6E to Simplify Network Congestion
Over the years the number of Wi-Fi routers has grown significantly, and by 2025, almost 100 billion internet connections will be created around the world. In addition, upcoming extremely demanding devices, including 8K videos or VR/AR games, will play a vital role in our lives gathering every bit of data at the same time.
What's left of previous generation—The 2.4 GHz and 5 GHz bands—has now become a lower entry barrier waiting for devices to contribute to network congestion. As a way of achieving less dense use, more devices, and increased data traffic, the highly efficient Wi-Fi 6 with a large, transparent band was introduced.
Wi-Fi 6 was first launched with new features last year to offer next-generation access to next-generation routers. In brief, this is a simpler and more powerful Wi-Fi variant that helps wireless access points such as routers to help handle networks full of users and consumer devices. And now with the launch of Wi-Fi 6E, the network arena is getting even wider.
The market term for consumers to recognize Wi-Fi systems running under 6 GHz is Wi-Fi 6E or 802.11ax. Wi-Fi 6E provides the functionality and capabilities to expand Wi-Fi 6 into the 6 GHz network, including improved capacity, lower latency, and higher data speeds.
The production is already ongoing, and it is anticipated that Wi-Fi 6E devices be available rapidly after 6 GHz regulatory approvals. This increased ability for broadband allows more innovation in Wi-Fi which makes important benefits to customers, industries with ecosystems.
Because of its identical characteristics and its closeness to the 5 GHz band where Wi-Fi already exists, 6 GHz offers increased spectrum power, contiguous spectrum blocks to 14 more 80 MHz channels, or 7 more 160 MHz broad channels and less congested bandwidth from standard Wi-Fi 4 or Wi-Fi 5 networks.
Wi-Fi 6E uses the 6 GHz features to support quick data processing apps with high bandwidth, including high-quality video playback, augmented reality, and lower latency networking for online gaming apps. It would influence both businesses and customers with these fast speeds and low latency.
Wi-Fi 6 is the secret to this better network, so it won't be feasible to bind earlier generations of Wi-Fi users to the 6GHz channel. This implies that Wi-Fi 6E will not be equipped with older generation devices which serve as poor links in the chain.
Developments such as Wi-Fi 6E in the networking industry compelled us to seek out for the best networking solution providers. Hence, Insights Success has come up with this exciting edition, "2020's Most Trusted Networking Solution Providers," that are standing at the forefront of networking technology and are contributing to connecting the world to every corner.
Our shortlisted companies include CloudGenix, a Software-Defined Wide Area Network (SD-WAN) solution that provides agile, intelligent, secure, and performant connectivity for all apps over any WAN transport; GeoLinks, a leading telecommunications company and competitive local exchange carrier (CLEC) public utility, nationally recognized for its innovative Internet and Hosted Voice solutions; Lavelle Networks, a client-centric networking solution provider delivering the best enterprise network experience; Redpine Signals, Inc., a wireless semiconductor and system solutions company focusing on innovative, ultra-low power and high-performance products for next-generation wireless applications; and Turn-key Technologies, a leader in networking, communications and security since our inception.
With all that said, it's time to flip pages and delve into the world of networking.
Have a Connected Read!
What Does a Managed Service Provider Do? A Simple Guide
Lavelle Networks: A Leading Name in the Enterprise Network Solutions Market


Why Markets are not falling?
Since the start of the October expiry, stronger hands i.e. FIIs have continuously been adding long speculative positions in the derivative market. If we analyse their trades, they have continuously rolled ~116% of their long positions in index futures and ~108.5% of their short positions in index put options. This indicates their bullish stance on the market.
Tracking the Long/Short ratio i.e Number of long position in comparison to the short positions, the stronger hands i.e. FIIs index future Long/Short ratio since the start of the October series stands at 1.4x while in the same time frame, the weaker hands i.e. Retail Clients index future Long/Short ratio stands at 0.9x, as clearly seen from the below table.
Analysing the table, FIIs have made contradicting positions in comparison to the Retail client in all the three mentioned aspects i.e. Index Futures, Call Options and Put Options. This has led to a whopping ~4% rally in Nifty since the start of October series.
From the above illustrations, it is clearly visible that the weaker hands have been overshadowed by the FIIs.
The day FIIs long/short ratio stands below 1x on a continual basis which can be indicated as their bearish stance on the market, which could lead to a possible trend reversal.


Apple introduced its Fusion Drives in the Late 2012 models of iMac, and has offered SSD (solid-state drive) storage as an option or standard in MacBook Air models since January 2008, and the MacBook Pro since late 2008. There are a lot of Macs out there using SSDs, and some of them are now getting pretty old.
So, a simple question, how long can you expect an Apple-fitted SSD to last?
The answers that I can find range from 1-3 years, up to more than 100.
Most SSDs – including those fitted by Apple, as far as I can tell – use non-volatile flash memory units, chips, instead of the spinning platters that make up a regular hard drive. With no moving parts, SSDs are not of course prone to the mechanical failures which so often end the life of hard drives. Because they store data in electronic circuits, they do not suffer from physical problems in the magnetic coating on a hard drive's platters.
Instead, two factors limit the lifetime of an SSD: flash memory can only be written to a certain number of times, and ultimately all flash memory fails to retain its data after about 10 years anyway.
There are several mechanisms used to optimise performance and lifetime of SSDs, the most important of which are TRIM and wear levelling. TRIM (which is built into OS X) is designed to discard blocks of memory no longer being used for storage so that they can be re-used, and wear levelling ensures that each block of memory receives a roughly equal number of write operations, to spread its use (and ageing) evenly.
In Fusion Drives and SSDs used as the startup disk, all the active files in OS X will be stored on the SSD, to ensure best performance. Some files within OS X are written to very frequently. If they were allowed to reside in the same blocks of memory all the time, then those blocks would quickly run out of available writes, and would fail long before other blocks of memory.
Wear levelling moves the files around different blocks of memory in the SSD, to even out its 'wear'. Inevitably, moving the busiest files around involves more write operations to the SSD, so there is a delicate balance between over-zealous levelling, which would shorten overall life, and none at all.
Let's say that your SSD is good for 10,000 writes to each block of memory before it stops writing. If there were no wear levelling at all, and OS X wrote to one particular block 100 times each day, then that block would only last 100 days before it stopped working, and the SSD failed.
If wear levelling did not incur any write overhead, and was perfect, then you would have to write the total capacity of the SSD out 10,000 times before it stopped writing: for a standard Apple-fitted 120 GB SSD (e.g. in a Fusion Drive), that would be 1200 TB of writes. Even if, in practice, wear levelling is only 50% efficient, that SSD should be good for 600 TB of data to be written to it.
The Fusion Drive in my iMac has been run for a total of 4,100 hours, which is almost 6 months. Over that time, 6 TB has been written to the 120 GB SSD in that Fusion Drive. So on current write usage, that SSD should last for around 100 of those 6 month periods before it can no longer write. That is a lifetime of 50 years. Even if I used the SSD much harder, writing around 50 TB/year to it instead of 12 TB/year, it should last well over 10 years before the SSD is likely to fail. Because all flash memory is likely to fail after about 10 years, it is not likely to die because it has been written to too many times.
This depends on reasonably efficient wear levelling. We do not know how good the wear levelling has been in Apple SSDs and Fusion Drives over their history.
One indicator of this is the wear levelling count, which is reported on all SSDs by good S.M.A.R.T. reporting software such as DriveDx. It is not reported by Disk Utility, nor in System Information.
I have just seen a DriveDx report on one SSD from an Apple Fusion Drive which has been running for a total of just over 2,000 hours – that's around 3 months – and in that period has written almost 500 TB to that 120 GB SSD, which I find extraordinary. Consequently its wear levelling count is now below 50%, and according to the S.M.A.R.T. health indicators, the SSD is in danger of failure.
Going by those figures, the average amount of data written to that SSD over its running lifetime has been 250 GB per hour, or 4.2 GB per minute, or nearly 70 MB per second, which seems unbelievable even for a heavily-used database server. Such a short working lifetime of only 3 months of continuous use would suggest a serious failure, probably in wear levelling.
If you have an SSD as your startup drive, or a Fusion Drive, you might like to make a rough estimate of the projected lifetime of your SSD: using DriveDx or a similar tool, take the size of your SSD in GB and multiply it by 5: that gives you the approximate quantity of data in TB which can be written to it before it is likely to start to fail. Compare that with the actual total data written in TB, given in S.M.A.R.T. indicator number 175, Host Write MiB.
The wear levelling count given in S.M.A.R.T. indicator 173 normally falls to around 90-95% in early use, but should then decline only very slowly. If it is approaching 50%, or even below, your SSD is wearing out.
Having come across one older iMac with a Fusion Drive which seems to be wearing out prematurely, I wonder if others may be similarly affected. If there was a bug in older versions of the wear levelling software, that could well be the case.
Posted in Macs, Technology and tagged DriveDx, failure, Fusion Drive, S.M.A.R.T., SSD, TRIM, wear leveling, wear levelling. Bookmark the permalink.
I have a late 2012 iMac with the 1TB fusion drive. I purchased it in March of 2013. The Wear Leveling Count continues to decline. I brought it into the Apple store when it showed 35% left and the "genius" said everything was fine. That was about six months ago and now drivedx indicates low at 22%, so I think within a year it will completely fail, which is unacceptable.
I agree. One problem is that I do not know how detailed a report of S.M.A.R.T. indicators Apple's diagnostic tools makes. Apple currently does not accept the results obtained from third-party tools such as DriveDx, but seems unable to give their own measurements.
If you have similar problems, then I would encourage you to contact the developers of DriveDx, so that they can increase their understanding of these problems. But it seems impossible to get Apple to do anything about these issues, I am afraid.
I have a late 2014 Mac Mini with a 1 TB fusion drive purchased on 10/23/14. A few days ago, I bought Drive Dx at your recommendation because TechTools Pro and SMARTReporter suddenly started saying my boot disk was failing the SMART check. DriveDx is telling me my wear leveling count is at 0%!! [I have no idea when it started to decline as I didn't have DriveDx before this week.] This is way too fast for this to have happened, and I have an appointment at the Genius Bar Saturday night. I suspect this problem is widespread. How does one get the word out so that Apple will do something about it?
I don't think that this problem is common, but seems to affect certain models of SSD.
Hi! I have a problem: after only 2 years of usage, more than 50 TB have been written to the SSD, and the "Wear Leveling Count" is at 52%! It has just fallen from 53%! I do a heavy usage, but I thought macOS would write to HDD first, not the SSD. Or does it use as paging drive? Because, even though I have 16 GB of RAM, I only have about 4 free (I'm currently using Chrome with lots of tabs & extensions, and I have a VirtualBox VM with 3 GB started, so I can free some RAM). Does this mean my Fusion Drive's SSD will only last 2 years more, with about 4 years of total lifetime? Because I can't really pay 700 € for changing it… Unless I'm lucky and I win the lottery! Wish me luck, please.
Apple doesn't publish details of the way in which the hardware components of a Fusion Drive are used, but the strategy is generally thought to put the most-used files on the SSD, where they will be most quickly accessed, and to put the less-used files on the hard drive, where their performance impact will be less. This isn't something over which you have any options, either: CoreStorage and macOS manage it for you.
There do appear to be some instances of SSDs in Fusion Drives 'wearing out' abnormally quickly. If those are supported by results from Apple's in-house diagnostics, the drive is usually replaced as a result. It may be worth a trip to a Genius Bar to get them to check your Fusion Drive for you – their figures may be less alarming.
Thanks for your reply. Unfortunately, the nearest Apple Store (and therefore Genius Bar) to me is at least 1 hour by car, at about 80 km. And that's passing by the toll! Otherwise, it's 100 km. I don't think it's worth to get my iMac, which is heavy and bulky (at least I have the original box) just for that right now. I'll go when the numbers are more alarming (if they get more alarming, maybe it's non-linear or there was an error). And of course, I do regular backups through Time Machine, so if the drive fails unexpectedly, my data won't be lost and I'll lose only 1 hour in the worst case.
Nowadays consumer SSDs really last very long. Its easily over 2 years with constant use.
Having a 3TB fusion drive after 3 years the SSD is worn out…. SMART status is red and I can't even install Mojave anymore due to that. I have to assume that the mechanism Apple uses after all is not really intelligent. I don't know what Flash memory Apple is using – but I am sure it is not SLC with 100000 P/E cycles as then the following would be even MORE drastic.
most SSDs in consumer are using TLC and 3D NAND so that P/E cycles should be anywhere between 300 and 800…. not lets assume we have 500 P/E Cycles which would result in 128GB * 500 = 64TB of written data. 3 years equals 1095 days. So per day 58GB have been written to the disk??????? seriously? Apple's mechanism to organize data between SDD and HD seems to be not that selective and intelligent then….. I would love to see an explanation for that…..
Have you looked at the figures produced by DriveDx? That should give you a very good idea as to exactly what has gone wrong with it.
If you look at this more recent article, you will see why SSDs in Fusion Drives are likely not to last as long as a plain SSD. In fact, CoreStorage seems to aim for performance rather than longevity.
Yes I looked at the figures of DriveDX – unfortunately it does give me only id's # 1,5,9, 12, 169, 173 wear Leveling count current: 74, worst 74 status 0% and #192, 194, 197, 199 – for some reason #175 with total number of bytes written do not get reported…. I do have a late 2012 iMAC that I want to replace within the next 12 months but first of all exchanging the bad SSD now has to be done first…. for anyone who wants to sell or buy a used iMAC with Fusion Drive the DriveDX numbers are kind of mandatory in order to assess whether one has to spend hundreds of $$$ for having the drive replaced soon (not everybody might want to reassemble the iMAC completely on his own – the procedure seems to be quite cumbersome….
That's a very good point about buying a secondhand Mac with a Fusion Drive.
A wear levelling count of 74% isn't bad by any means for a 3 year-old Fusion Drive. However its meaning isn't consistent across different SSDs, so it is hard to interpret.
not that is confusing – the latest version of DriveDx shows a bit more than on your images above…. so the status green bar where it says 91% in your case is ZERO% and hence fail in my case. there are 3 additional parameters listed between the raw value and status column from above. Those values are called current, worst and threshold. Current and worst are at 74 for me, threshold is 100. it seems that values below the threshold mean a fail…. thank god I can still work with my iMAC – Wednesday all material for a replacement will arrive….


text:
From "Why Me" To "Why Not Me" – Cassper Talks About The Transformation In His Life [Video]
by Daniel 28 October 2020, 9:37 am 1.4k Views
Like every other person, Cassper Nyovest has had his fare share of life's ups and downs but coming out victorious is what has placed him on the spotlight and now he decides to encourage and give hope to his fans.
Cassper Nyovest – Vuzacast
In a 2 minutes video shared on all of his social media platform, the rapper spoke about how he had struggled and how he wanted more in life but didn't get all this because of how hard he was on himself.
But all this changed the minute he changed he mindset towards himself through his question of "Why me" to "Why not me."
SEE ALSO: Lebogang Maile Questions Geoff Makhubo's Government In His Letter To Him
To touch fans with the story of his life, and how he achieved success, Mufasa said he worked hard in the studio, and at some point when things were not blooming, he started to demand for his blessings.
The rapper claims he deserve the cars, house and many other blessings he has today.
"Coming up I used to struggle with a lot of things, one of the things was self-doubt. I used to be hard on myself. I used to ask myself why me. Everything changed for me when I changed the question from Why Me to Why Not Me."
"I have always felt pain, why can't I feel joy… I started demanding my blessing, because I felt like I deserved it. I have already sowed, so why can't I reap? I started telling myself that I was special and different from everyone, and my life changed."
"Do away with self-doubt," he added.
Watch full video below:
From "Why Me" To "Why Not Me" – Cassper Nyovest Talks About The Transformation In His Life pic.twitter.com/eEJBRT33Cq
— vuzacast.com (@vuzacasta) October 28, 2020
Previous article Somizi Gets Slammed After Revealing The Amount A Mysterious Person Accidentally Sent Him
Next article "You Never Understand Life Until It Grows Inside You" – Kim Khlowie Reveals Her Pregnancy [Photos]
Cassper Nyovest Reveals He'll Be The New Host For The Braai Show On SABC 1.
Cassper Nyovest Admires American Songstress, Rihanna Status, As She Becomes World's Richest Female
Nadai Nakai Reveals Her Departure From Cassper Nyovest's Family Tree Records(Video)
Cassper Nyovest Rocks His Much Anticipated Rootfame Sneaker
Somizi Gets Slammed After Revealing The Amount A Mysterious Person Accidentally Sent Him
"You Never Understand Life Until It Grows Inside You" – Kim Khlowie Reveals Her Pregnancy [Photos]


The Marine Society & Sea Cadets (MSSC) is a vibrant and growing charity delivering life changing nautical adventure for young people through the Sea Cadets together with personal and professional development opportunities for seafarers with the Marine Society. Working with our staff, cadets and volunteers, we have built a vision and five-year strategy to take us forward and further improve the astounding contribution already made through our work to the lives of thousands of young people and seafarers, while fully supporting our volunteers who are vital to our success.
We currently have a vacancy for a Volunteer Support Administrator to work in our London Area office.
The responsibilities of the post include maintaining the records of adult volunteers in the Sea Cadet Corps, providing support to them around this, and providing general administrative assistance. This role demands a proactive and effective administrator with sound experience of office administration and systems, capable of working both as part of a small team and alone when required. The successful candidate will be able to demonstrate the ability to communicate easily and effectively with a wide range of people and will be self-motivated and prepared to have a hands-on flexible approach. A natural empathy for volunteers is essential.
This is a permanent contract, and is a part-time role (3 days per week) based on a working week of 35 hours. The leave entitlement is 20 days per annum (pro-rata) plus public holidays.
For more information, please download the Job Description and Person Specification from our website via the button below.
To arrange an informal discussion about the role, please contact Paul Salter, Volunteer and Business Services Manager on: 077 1778 2922.


text:
Q: Issue with NULL byte at URL Suppose we have the following PHP scripts
if(isset($_GET['adr'])) {
    $adr = $_GET['adr'];
    include $adr.".txt";
}

I want to load a non text file, For this purpose I use mysite.com/?adr=g:/file.asd%00 URL, in the other side we all know all strings in PHP must terminated by NULL byte (i.e. %00). But when I request this URL the Apache server tells me:

Warning: include(): Failed opening 'g:/file.asd' for inclusion (include_path='.;C:\php\pear') in G:\Program Files\EasyPHP-12.1\www\index.php on line 16

Can anyone please tell me why this does not work?
Thanks

A: Leaving aside the massive security implications of includeing a file based on user input without validation, here's what I'd do:
if( strpos($adr,".") === false) $adr .= ".txt";

Basically, this appends .txt only if there is not already a file extension (or at least, something that looks like it might be a file extension)

A: I don't know anything about using NULL byte in urls.
When creating URL and passing parameter you should use urlencode function as below:
$x = 'ysite.com/?adr='.urlencode('g:/file.asd');

and you should make sure that file g:/file.asd.txt exists
Extra question - are you sure you have your file saved? In warning there is Failed opening 'g:/file.asd' for inclusion and in your code you include g:/file.asd.txt file.
Of course you can do this only on your localhost. IF you do it on live server, simple don't because anyone can quick reveal all filesystem data and do anything they want.


New Zealand's longest running classic car magazine – celebrated its 300th edition in January 2016, an amazing achievement for a publication which began as a simple idea to put local classic car owners in touch with event organisers, car clubs and trade professionals. NZ Classic Car has been a vital part of the local motoring scene for more than 25 years and features unique and extensive classic motoring coverage. NZCC's enthusiastic and passionate writers cover the length and breadth of the country ensuring extensive classic motoring coverage. Our coverage of New Zealand's motoring heritage remains unrivalled, especially in the field of motorsport history, plus we include stunning photography, authoritative features and event reports from throughout the country.


text:
Q: DBIx:Class - cannot find source for model I am trying to use DBIx:Class. I have successfully created the Schema class using DBIx:class::Schema::Loader.
I can also connect to the database.
#!/usr/bin/perl -w
use Test::More tests => 5;

use_ok('Models::ModelRole');
use_ok('Models::User');

my $model = Models::User->new();

cmp_ok($model->{ModelName}, 'eq', 'User', 'model name');

ok($model->connect(), "connect"); #works

ok($model->{schema}->resultset('User'));

The last test returns the error message:
DBIx::Class::Schema::source(): Can't find source for User at ./tests/ModelsTests.pl line 29

This is the structure of the generated class from DBIx:Class::Schema::Loader:

This is the model user class:
package Models::User;

use DB::Glued::Schema::Result::User;
use Models::ModelRole;
use Moose;

with 'Models::ModelRole';

sub BUILD {
    my $self = shift;

    $self->{schema} = Glued::Schema::Result::User->new();
    my @name = split('::', __PACKAGE__);
    $self->{ModelName} = $name[-1];
}
1;

I hope this is enough information.

A: Schemata/models have to be connected to a source. The DBIC code is only describing the data and its relationships. It's entirely agnostic about the source/connection.
So you must connect DB::Glued::Schema to be able to exercise the model. The best way for tests, I think, is to connect to an in :memory: SQLite DB. The DB will be empty of course. There are a few options/approaches for populating it if you need fixtures. Search metacpan if you do.
There is a nice package to make test connections simple for you: Test::DBIx::Class.


So nice of you to think of yr mum all the time. I miss my mum too. Ahem.... i am Sun's fren. Been reading yr blog since u started. Can guess who i am?
btw, i am still in Langkawi.
Thanks for dropping by. Mum's love is priceless.
You will feel appreciated & good as well.
Ya! we are all our mum shinning stars!
you are Cindy gam mou? Sun bestest buddies. rite guess, ABC on you ok?
wow ah moi, you verli the enjoy lah weiii.
I too should have joined the govt.
what guardian angel? I think she's reincarnated from Lucifer la... muahahaha!!!
Why not start by giving her the perfect gift?
showered with lots of love and hugs, rite?
i have 3 mothers !
am i blessed or what ??
You are truly blessed to hv so many ppl to love you. Perhaps it's affinity.


Hi everyone :) Can I ask a favor?
This site lets you resize images (pictures).
Sometimes you want an image to be a certain size, for example forum avatars often have size limits.
Will I lose image quality?
If you're sizing downwards (going smaller) you shouldn't notice any loss in quality. On the other hand if you're going much bigger you will probably notice some blurring or jaggedness.
Can I resize animated gifs?
Yes, gif images with animation are now supported by ResizePic.
Can I link to my image on your server?
No, due to bandwidth and space all images are periodically wiped from our server. Please be sure to download your image when you're done resizing it.
What image formats can be resized here?
JPG, GIF, PNG and BMP.


Car owners rejoice! There is now an auto service company that is committed to fixing your vehicle correctly the first time at an affordable price: Minit-Tune & Brake Auto Centres. From oil changes in Maple Ridge to seasonal or large-scale maintenance, we are here for your vehicle.
As fuel costs continue to rise, it is imperative that your vehicle is in pristine working condition so you don't spend unnecessary money at the pump. We will replace any filters, rotate any tires, and service any accessory, so that your vehicle is in peak operating performance. At Minit-Tune & Brake Auto Centres we believe that auto service can be both efficient and convenient. We will take the necessary time to make sure your vehicle is well-maintained so you can get back to your busy day. Call us today for superior service and customer care!


Home / Products / NEET Zippered Cable Tie Wrap with Apple Certified Lightning Cable (20 cm/ 8 inch).
NEET Zippered Cable Tie 8-inch is a simple to use earbud and mobile device cable organizing solution that will help you declutter your busy lifestyle. The included Apple MFi Certified Lightning cable ensures complete charge and sync compatibility with iPhone 7 Plus / 7 / 6s Plus / 6s / 6 Plus / 6 / 5s / 5c / 5 / iPad Pro / iPad Air / Air 2 / iPad mini / mini 2 / mini 4 / iPad 4th gen / iPod Touch 5th gen / iPod nano 7th gen and Beats Pill+ Zippered Cable Tie comes in 11 colors so you can identify your earbuds, cables or devices & becomes a part of the earbuds, meaning no additional piece to carry and/or lose. The flared end & zipper makes installation easy, provides space for nesting during storage & gives freedom to adjust the length to fit your body or activities. Zippered Cable Tie 8-inch/ 20cm with Apple Lightning Cable pack comes complete and ready to go out the package meaning no tools required. Simple "Slip & Zip" full zipper opening allows for easy install of practically any mobile device charging cable should you choose to install a different cable. No more tangles! Life is better with NEET! Zips on Stays on. The Zippered Cable Tie is a perfect solution for: Gym enthusiasts, Music lovers, Frequent travelers, College & high school students, Color coding electronics, Bags or purses, & more!
Organize It - Zip, Wind & Loop. Zippered Cable Tie makes storing earbuds and mobile device cables easy. Zips on Stays on.
Grip It - Helps reduce everyday wear & tear from damaging tangles & snagging. Reduces strain on cable tip by gripping onto tables and desks.
See It - Add a bit of flare, personality & identity with 11 vibrant color options.
Shape It - Use it as a cell phone stand and more.
Run With it – Lightweight so you can run with it! Designed for the active lifestyle. Easily adjust cable lengths to fit your body during workouts to prevent snags.
Patented Technology: Cables are a hard to organize because there's no structure to the body. When installed the Zippered Cable Tie becomes a part of the cable and with the inner wire, it gives the cable a structure to easily managed. Because life is better without tangles.


text:
CHANGES @ WholeWorldband, WMG, BMI, ASCAP, Believe, Primary Wave, Knitting Factory and Indiegogo
WholeWorldBand.com announced that Gregory Butler joins the company as Managing Director of North America. Butler comes from previous positions at Native Instruments, Lexicon and PCAudioLabs.
Warner Music Group has promoted James Steven to the post of Executive Vice President, Communications & Marketing
Believe Digital has partnered with digital & physical distributor Prime Direct Distribution, in a partnership which sees the company strategically strengthen their position in the digital space by utilizing Believe's expertise and technology.
Indiegogo, the online funding platform, announces the promotion of David Mandelbrot to Chief Operating Officer, overseeing several key departments including Product, Business Development, Design, Digital Marketing and Customer Happiness. Mandelbrot joined Indiegogo in 2013 as Senior Vice President of Operations.
Primary Wave Entertainment brings in music manager Toya Hankins as a new management partner with a focus on continuing the growth of their Urban Talent Management division. The multi-faceted music manager is the founder of Project Producers, LLC and has had over 20 years of success managing the career of platinum-selling recording artist and songwriter, KEM, whose current album, "Promise To Love," was recently nominated for a 2015 Grammy Award and two NAACP Awards.
Knitting Factory Entertainment has promoted Mark Dinerstein to President of Knitting Factory Presents, where he will run all of the company's live music venues, concerts and events on a national level.
BMI announced that Ann Sweeney has been named Senior Vice President of Global Policy, effective immediately. Sweeney joins BMI from Warner Chappell Music, where she was most recently Executive Vice President, Digital Strategy and Policy.
ASCAP announced the promotion of Lynne Lummel to Executive Vice President of its newly created Transformation Management Office (TMO). In her new role, Lummel, formerly Senior Vice President of Distribution and Repertory, will work closely with ASCAP's senior leadership team on a variety of transformation initiatives.
Warner Music Group Reports Stronger Financials, Revenue Up 7%
To Pay Or Not To Pay Interns, That Is The Question
Warner Music Group announces Q4 loss of $42 million
Snapchat Adds Music – It's A Big Deal, But Will Artists And Songwriters Get Paid?
Why the $10000 Apple Watch is a good thing, especially for people who can't … – Vox
Apple's iTunes Store, App Store experiencing outages – ZDNet


laundry room shelves laundry room shelves keep everything organized and within reach organization laundry room shelves.
laundry room shelves laundry room shelves and rods interior laundry room shelf with hanging rod house ideas net from laundry room shelves.
laundry room shelves brilliant ways to organize and add storage laundry rooms typical build room shelves 4.
laundry room shelves laundry room shelving makeover regular shelves ideas 4.
laundry room shelves laundry room shelf over washer dryer with wood shelf unit.
laundry room shelves we went with the same white walls in here that are in most of our house so i went with a soft grey color on the cabinets and the shelves.
laundry room shelves laundry rooms shelving solutions room shelves ideas and storage laundry room shelving solutions new design room.
laundry room shelves the 4 baskets that sit on the shelves had for a long time if you look at the laundry room.
laundry room shelves laundry room shelving laundry room shelving image of corner laundry room shelves laundry room shelving unit laundry room shelving.
laundry room shelves laundry room decor ideas modern decorations simple and easy organization.
laundry room shelves we could reuse the hardwood from our pantry and make a bench in the laundry i love the white and wood look.
laundry room shelves laundry room is definitely the laundry room and shelving it provides a lot of extra storage plus the entire thing cost us less than.
laundry room shelves small laundry room.
laundry room shelves utility room shelving beautiful laundry room laundry cabinets and shelves laundry room shelves and.
laundry room shelves laundry room shelving ideas.
laundry room shelves laundry room storage shelves design for your laundry room decor a large laundry room storage shelves.
laundry room shelves small laundry room ideas home stories a to z within cabinet idea pretty shelves and.
laundry room shelves budget laundry room reveal laundry closet.
laundry room shelves use a serene color palette for organization.
laundry room shelves laundry room shelves interior ideas for laundry room shelving ideas for small laundry room wire shelving.
laundry room shelves shelf over washer dryer laundry room wall shelves laundry room shelf over washer dryer with adjustable wire wall shelving laundry shelf ideas above washer.
laundry room shelves i knew that was the case when i saw this gorgeous open shelving from my friend at the wood grain cottage.
laundry room shelves wall shelves and cabinet with door from as laundry room.
laundry room shelves laundry room shelving get this farmhouse look with regard to ideas.
laundry room shelves laundry room shelving ideas laundry room shelves storage ideas solutions laundry room shelving small laundry room.
laundry room shelves laundry room shelves floating shelves laundry room floating shelves laundry room shelf above washer and dryer laundry room shelves.
laundry room shelves view in gallery laundry room shelving and accessories.
laundry room shelves w white open shelves laundry cabinet kit.
laundry room shelves platinum ventilated shelves.


text:
About Climate One
The Commonwealth Club
Finance Lecturer, Johns Hopkins University; Author, Broken Bargain: Banks, Bailouts, and the Struggle to Tame Wall Street
Kathleen Day joined the Johns Hopkins Carey Business School in 2013. A business author and journalist, she is a full-time lecturer with a specialty in financial crises and how they spread; in corporate governance; and in business communication, particularly during crises.
Day previously taught at Georgetown University's graduate program in real estate, where she created an ethics course based on the series of financial crises in the United States over the last several decades, from the Great Recession through the 1980s banking crisis and the mortgage meltdown of 2007. In addition to financial crises, her interests include the related topics of corporate governance, particularly the history of the corporate form; government regulation and oversight; lobbying and campaign finance; ethics; crisis communication; and the application of artificial intelligence in finance.
Live Event Appearances
COVID-19 and Climate: Economic Impacts
The COVID-19 recession is unfolding at historic speed and depth. New jobless claims reached a record 10 million in just two weeks. Wall Street's fear gauge closed at an all-time high in mid-March.
Environmentally, though, the shutdown has come with some temporary benefits — decreased travel, cleaner water, a plunging demand for oil. But crashing the economy isn't exactly a climate solution.
Podcast Guest Appearances
Apr 15 2020 - 12:00pm
The COVID-19 recession has happened faster and hit deeper than most people could have imagined. Perhaps not surprisingly, the people most at risk in a shuttered economy are often the same people who are most vulnerable to the impacts of climate change.
"This crisis has served to expose some of the vulnerabilities of the economy," says Kathleen Day, Finance Lecturer, Johns Hopkins University, "and one of those is that we have such a large number of people living from check to check."
Breaking Through: A Year of Climate Conversations
In this special episode we look back at the climate stories of 2020 by listening to excerpts from a year of climate conversations, beginning with a post-election update from Justin Worland, Senior Climate Correspondent for TIME.
A Feminist Climate Renaissance (10/09/20)
What Is A Just Transition? (1/31/20)
Former U.S. Secretary of Defense
Founder, Center for American Progress; Former Chief of Staff, President Bill Clinton
Michael Toffel
Senator John Heinz Professor of Environmental Management, Harvard Business School
Emily Atkin
Barbara Freese
Author, Industrial-Strength Denial: Eight Stories of Corporations Defending the Indefensible, from the Slave Trade to Climate Change
We invite you to join our supporters helping to change conversation about climate disruption for good.
DonateJoin
© 2021 Climate One. All rights reserved.


A DRUG worker and former heroin addict says the conviction of two brothers who ran a massive crime empire is just the "tip of the iceberg" in the battle against drugs.
Father-of-three Cavan Hanna, 39, of Pinewood Place, Dartford, and Jamie Hanna, 37, of Wrotham Road, Meopham, a father-of-one, are serving a 14 year sentence.
The two men, bosses of a drugs gang that operated across north Kent and south east London, commanded a multi-million pound empire.
But Lee Weech, 40, who works for GAS4P, a drug addiction advice charity based in Queen Street, Gravesend fears the result will do little to stop the flood of drugs in the area.
He said: "Drugs in north Kent are rife. It is a sad fact that we do absolutely have a drugs problem here, and this latest case is just the tip of the iceberg in the drugs trade. The police do a good job in stopping people like this, but the problem is that when one gang is stopped and sent to jail, there is another two gangs ready to step in and take their place. I don't think you can ever eradicate it all. There is no sentence that will deter people from getting involved in this, people have the mindset that it won't happen to them, but it could easily happen to them. They are attracted by the money and the lifestyle - it's a lot easier than getting a job."
The duo were jailed at Maidstone Crown Court last Friday, alongside five other members, after admitting conspiracy to supply class A and B drugs and money laundering.
During the operation, police led by officers from the Serious Organised Crime Agency, (SOCA) raided a number of properties seizing a large quantity of drugs and more than £5 million, making it one of the biggest cash seizures made by police in the UK.
Records recovered from properties showed the gang carried out deals worth £38 million in just three months.
The court heard the men were arrested between October 2007 and June last year, following surveillance by SOCA. The property at the centre of their empire was a flat in Alderman House, Greenhithe, in which police discovered more than £1 million in cash being counted. A drugs factory in Plumstead was also raided, with the discovery of an industrial mixing machine along with 15,200 ecstasy tablets with a street value of £60,000 and 83kg of amphetamines, with an estimated value of £828,000.
The sum, along with money recovered from other locations, totaled £5,131,211.
Mr Weech added: "Although this is a big raid, it is an ongoing battle all of the time. The answer is that we need education from when they are very young, telling them the dangers of doing drugs and the impact it has. This is why GAS4P is an essential service for the community, we don't just support the addict, we support families and the carers. Drugs have as much an impact on them. We have some 25 people coming through our doors every day, and that is just the people we hear about, there are going to many more. It still goes on."
Judge Philip Statman said when passing sentence: "This was big business - big risks for big gains, tax free, enough money to make the jaws of the average citizen drop."
Employees in the "business" Jon Bastable, 37, of Sutherland Avenue, Welling, Darren Rankin, 38, of West Hill, Dartford, Steven Mee, 51, of Foxgrove Avenue, Beckenham, and Raj Koli, 33, of Bayswater, West London, were each jailed for five years. Martin Winter, 46, of Reddy Road, Erith, was sentenced to 21 months.


It's a fascinating time for the retail industry. On one hand, you have the likes of Amazon Go where the focus is purely on speed and convenience and, on the other, you have retailers intent on delivering a truly memorable in-store experience for their customers.
In the first example, there's no staff at all. Customers walk into the store, download the Amazon Go app, do their shopping and then leave. It's as simple as that. There's no queues, no cash handed over, and no frustrations in the self service checkout area. Once the shopper leaves, they're then sent a receipt straight to their phone. And, with plans to open another six stores this year, it's clear Amazon believes this is, in part, what the future of retail looks like.
In the second example (and the complete opposite from the Amazon model), people are the key ingredient. It's the retailer's staff who are in prime position to provide the best shopping experience to their customers. The secret to success is empowering these staff or 'customer champions' to be able to deliver the best experience possible.
The technology fuelling the rise of the in-store experience include things like workforce management software, point of sale systems and the ability to harness big data to make better decisions.
And it's thanks to a modern, mobile-first, and cloud-based retail workforce management system that leading fashion retailer, GANT, has been able to reduce the time they spend on their scheduling process and the associated follow-ups by 75%.
For GANT, this has meant their managers are able to spend more time working in the store, with both their employees and their customers. As Retail Operations Manager, Tomas Andersson, says, this utilisation of technology to empower people has had a huge impact.
Download the case study below to read the full success story from GANT.
"Thanks to the flexibility of the workforce management system we use, we're able to optimise fixed schedules. This means the base for a schedule is set, which includes the number of employees at opening and closing. Thereafter, staff are added depending on needs, for example at times when sales are high and we have deliveries."Previously we did our scheduling in Excel," he says. "Introducing a web-based system has made a big difference and we're so pleased. We have a much smoother scheduling process.
GANT's success hasn't just been limited to their front of house operations. Thanks to the time punch function within the workforce management system they use (and its integration into their payroll system), their manual payroll administration has completely disappeared.
It's this smart use of technology to optimise the way they operate which is putting retailers like GANT ahead of the competition. In the face of a range of challenges, like changing customer behaviours and expectations, they are leading the way by utilising software to be more efficient, to give more to their staff and, as a result, provided a better experience and service to their customer.
Why not see how much you could be saving with a cloud-based, mobile first workforce management solution? Try our Return on Investment Calculator to find out.


I went out and took some photos in the garden. Did like this background…cleaned it up a bit and blurred the horizon. I took the bomber and small one to the right out…dont think they are needed.
CAn't wait to see your next steps!THat butterfly pic also got a lot of potential!
Hey Mark, nice update man!! I think perhaps a small flowers or more far from the butterflys action, only a comment. Again nice job mate!!
That's a really cool idea - the gun-fire looks beautifully out of context coming from those critters. I also liked your parking idea, but this butterfly image looks like an excellent choice. At the moment they all have their wings fully open. Does that mean that they are 'fixed-wing' butterflies or do you intend them to be of the regular flapping variety?
MDN67 …Cheers i hope u like the update.
Ferx … I may put another flower in closer to the action…will see how it developes.
Hiya all, Been busy and finally finished the image to my satisfaction.
I did enjoy this concept, Butterflies and Moths in a battle at the bottom of the yard.
hey cool work. i love the way you did the closest pine needle. it looks super wicked. grats on finishing too!
wooohooo! :bounce: congratulations!! :applause: this is super cool! :buttrock: never imagined butterflies as war planes! hehehehe good work mate! cheers to you!
@Slav Hey there thanx The plant and background are from a photo I took at work and then using Photoshop filters got this result.
@nwiz25 Thanx for the comment it took a while to come up with an original idea. I am very happy with it and for finishing aswell.
Hey Mark, wooow , great and cool concept!! I liked a lot. The composition for the butterfly dogfight is really great!! Congratulations for this nice artwork and best of luck! Cheers mate!
Hey Ferx, Thanx for popping over and thanx for the kind words.


text:
Bodinayakkanur Ganesan () is a 2011 Indian Tamil-language action film directed by O. Gnanam. The film stars Harikumar and Arundhati, with Ravi Shankar, Soori, L. Raja, Christopher, Dindigul Alex, Stills Kumar, M. Thirupathi and V. Venkatesh playing supporting roles. The film, produced by Athiralakshmi and Atul Krishna, had musical score by John Peter and was released on 29 July 2011.

Plot

Ganesan (Harikumar) and his friend Gilaki (Soori) sell arrack and ganja in Bodinayakkanur and they work for the heartless ruffian Thiruvaachi (Ravi Shankar). Ganesan and Gilaki often go to jail for petty crimes and Ganesan has a mentally-challenged brother Kottaiyan who lives in a special home. One day, Ganesan comes across the nurse Raji (Arundhathi) who cares and shares for others and he falls in love with her. When Ganesan reveals his love, Raji insults him for being a rowdy and advises him to become a good man. Her words shook him so much, that Ganesan all of a sudden has an epileptic seizure in front of her and no one came to help him. Ganesan then decides to earn an honest living but Thiruvaachi who has a grudge against Ganesan tries to stop him. Meanwhile, Thiruvaachi wants to marry his cousin Raji and confronts Ganesan.

In the past, Thiruvaachi was the son of the wealthy man Azhagar (L. Raja) while Ganesan was the son of their servant Manikkam (V. Venkatesh). Being constantly and unfavourably compared with Ganesan who was academically-inclined, Thiruvachi had developed a hatred for Ganesan and he had slowly become a wastrel. One day, Thiruvaachi stabbed to death his own father Azhagar in front of Ganesan and a shocked Ganesan had his first epileptic seizure but before dying, Azhagar requested Ganesan to endure Thiruvachi's evil deeds for the good of Kottaiyan. Thiruvaachi left the place and blamed Ganesan for killing his father. The innocent Ganesan spent time in jail and he then became Thiruvaachi's henchman.

Back to the present, Ganesan fights back and defeats Thiruvaachi. Raji eventually accepts to marry a reformed Ganesan and they get engaged with the blessings of Raji's mother, Gilaki, Gilaki's newly married wife Annakili (Janaki) and the villagers. Thiruvaachi then abducts Annakili and he threatens to rape her unless Gilaki gives Kottaiyan up. Gilaki surprisingly makes the exchange and he then feels guilty of betraying his best friend. The next day, Gilaki is found hanging from a tree and Annakili reveals everything to Ganesan. Ganesan sets out to find his brother but Thiruvaachi mercilessly kills Kottaiyan. Ganesan and Raji track Thiruvaachi down and they find the dead body of Kottaiyan. Ganesan begins to have an epileptic seizure but he manages to control it and Thiruvaachi attacks the couple. The film ends with Ganesan killing Thiruvaachi.

Cast

Harikumar as Ganesan
Arundhati as Raji
Ravi Shankar as Thiruvaachi
Soori as Gilaki
L. Raja as Azhagar
Christopher as Head constable
Dindigul Alex as Inspector Naagu
Stills Kumar as "Alaparai" Arumugam
M. Thirupathi as Kottaiyan
V. Venkatesh as Manikkam
Jinda as Bose
Janaki as Annakili
Madhu in a special appearance

Production
Gnanam, who had earlier worked with Surya Prakash and Ravi Mariya, made his directorial debut with Bodinayakkanur Ganesan under the banner of Lakshmi Krishna Combines. After Thoothukudi (2006) and Madurai Sambavam (2009), Harikumar returned to play the lead role. Arundhati was chosen to play the female lead, the film's villain was Ravi Shankar and Soori brought in the laughs. The action sequences of the film were directed by Anal Arasu, John Peter had composed the music while Prabhakar had handled the camera. The film was primarily shot in Bodinayakkanur. With the age-old Fishing Festival as the backdrop, director O. Gnanam managed to convince fisherfolk to shift the event to a date convenient to shoot, for the film. Speaking of the film, the director said, "The movie has a strong storyline. It is earthy, sentimental and reflects the culture and traditions of the land".

Soundtrack

The film score and the soundtrack were composed by John Peter. The soundtrack, released in 2011, features 5 tracks with lyrics written by Nandalala and Ilaya Kamban.

Release
The film was released on 29 July 2011 alongside Karungali, Markandeyan and Veppam.

Critical reception
Behindwoods.com rated the film 0.5 out 5 and stated, "Director Gnanam really seemed to have very little idea about the way the film was headed. It looks a shoddy product in all [..] Overall a disappointing product which has to be endured rather than enjoyed!". The New Indian Express said, "the plot and narration is quite monotonous and tedious is an understatement" and concluded, "This one too is a passable entertainer, with nothing novel or exciting to offer the audience". Malathi Rangarajan of The Hindu wrote, "The same kind of stuff you've seen ever so many times, with a little suspense here and there". IndiaGlitz stated, "Gnanam, who has directed the film, seems to have made it a commercial cocktail. But a sense of deja vu prevails as we watch Bodinayakanur Ganesan".

Box office
The film took a below-average opening at the Chennai box office and it ultimately tanked at the box office.

References

2011 films
2010s Tamil-language films
Indian action films
2011 directorial debut films
2011 action films


text:
New Tactical Research Unit (TRU) at Bond Uni is on the front-line of research
Bond University has established a world-first research unit focusing on health, protection and performance of tactical populations, those on the front line protecting their community and country.
Dr Rob Orr and Dr Rod Pope of Bond University lead the Tactical Research Unit (TRU), an independent, non-departmental research unit. The unit includes a network of multi-disciplinary, international experts who will investigate ways to enhance the physical and cognitive capabilities of tactical personnel in military, law enforcement, fire-fighting and first responder organisations. In addition to their ongoing research, the TRU has a number of pipeline projects including investigating the impact of structural fires on hydration in fire fighters.
The TRU will work alongside advisors from the Australian Federal Police, New South Wales Police, Queensland Fire and Emergency Services, and the Australian Army. The unit will also coordinate the efforts of researchers worldwide and allowing for the sharing of information to benefit a wider range of tactical responders.
[img source] Bond University
The above story is based on materials provided by Bond University
La Trobe Uni makes game changing cancer discovery


Legend Afro-American partners, LAAP, is a new nonprofit organization founded on the recognition that many older people in Nigeria do not receive adequate care.
Their plight is, therefore, a burden of conscience worthy of lifting.
LAAP insists that elders everywhere should be allowed to live out their lives with dignity.
To help Nigerian elders, LAAP will begin with small but significant steps: providing companionship, assisting with vital daily needs, home chores, and errands.
Our vision is to build in Imo State, Nigeria, the first elder Residential care center in the country. A center where elders would receive the care they deserve, and their wisdom would be preserved for posterity.
Since your organization is adept at caring for elders, we would be grateful for your support, guidance and cooperation. We would also welcome members of your organization onto LAAP's Board of Directors.


Few artists have changed the manner in which photographic images are made, read, and received over the past two decades as dramatically as German photographer Wolfgang Tillmans (b. 1968). One of the most important and distinctive artists to emerge in the 1990s, Tillmans's work is internationally recognized for its powerful reflections on the often overlooked objects and moments in everyday life. //With images culled from the entirety of Tillmans's career, this generously illustrated book accompanies the artist's first retrospective exhibition in the United States and features the potent effects of his portraits, abstractions, and structural and sculptural motifs. Essays by leading scholars examine the context of the German art and pop cultural scene in which Tillmans first began working in the late 1980s; his use of magazines as both venue and source materials; his unique approach to portraiture; his ability to create a sense of intimacy between the viewer and subjects ranging from his friends to cultural figures and heads of state; and his distinctive approach to presenting his images in displays and installations. //A fascinating look at the breadth of Tillmans's career to date, including his most recent new work, this book demonstrates the renowned abilities of one of the art world's most revolutionary photographers.


text:
'Irresistible': Jon Stewart Imagines a Semi-Normal Political System
Cynically optimistic, made before the current crisis
June 26, 2020 Stephen Garrett	0 Comments	Armando Iannucci, Chris Cooper, Irresistible, Jon Stewart, Rose Byrne, Steve Carell
What an oddball achievement: optimistic cynicism. Jon Stewart's solidly thoughtful political comedy Irresistible is a strange mix of sweetness and outrage, a pox-on-both-houses satire of America's dysfunctional two-party system that refuses to revel in despair.
IRRESISTIBLE ★★★(3/5 stars)
Directed by: Jon Stewart
Written by: Jon Stewart
Starring: Steve Carell, Rose Byrne, Chris Cooper
Running time: 101 min
It's also more on-brand for the gimlet-eyed former host of stalwart news parody The Daily Show. Stewart here eschews the atypical tone he struck with his directing debut, the dour, earnest Iranian interrogation drama Rosewater, and embraces a more Capraesque style. The pivot fits him about as comfortably as his trademark khakis: a bit square, a bit bland, but a sturdy look with a classic profile.
"I look forward to lying to you in the future," coos GOP strategist Faith Brewster (Rose Byrne) to a glass-eyed media cluster as Clinton's master operative Gray Zimmer (Steve Carell) does the same, a delightful fantasy translation of the bullshit talking points that spin doctors so effortlessly spew. After Trump's improbable 2016 win, Zimmer and his fellow dems are in wilderness mode, a party in disarray and looking for a savior.
Enter Marine Colonel Jack Hastings (Chris Cooper), whose Norman Rockwell defense of immigrants at a town hall meeting in Deerlaken, Wisconsin goes viral and blows up on YouTube. "Looks conservative, sounds progressive," mutters Zimmer in his slick, glass-walled Washington office. Reliably red-state Deerlaken has been hemorrhaging townsfolk ever since a closed military base thinned their population from 15,000 to 5,000. Zimmer thinks he can flip Hastings to being a Democrat and running for the mayoralty—especially with enough money from the DNC. And that could maybe-just-maybe crack the red-state veneer enough to start a Democratic domino effect in the heartland. "He's our key back into the Forbidden City," says Zimmer.
So Zimmer deigns to run Hastings' campaign, swapping out his Caprese salads for burgers and Bud to ingratiate himself with the skeptical locals. His effort is so successful that the GOP gets wind of it and bankrolls the establishment. Brewster is their gleeful weapon, a trash-talking Kellyanne Conway type who condescendingly smiles and backstabs with equal relish, peddling xenophobia in a place she refers to as Turdville U.S.A.
And the stand-off only escalates, as both sides pump millions of dollars into the small-scale effort to control this small town. Super PACs move in, as do tactics like micro-targeting voters and intense voter groups. Data-crunching analysts dominate, citizens become pawns, and D.C.'s donor class create a nail-biter election eve. Who wins? Let's just say that the people of Deerlaken get richly rewarded while serving up just desserts in equal measure.
'Irresistible', directed by Jon Stewart, stars Steve Carell and Rose Byrne in a political satire that imagines a world where people still watch CNN. (Focus Features).
Pleasantly entertaining, with a more than a few bullseye quips, Irresistible is always smart but never shrewd. Stewart delivers a persistently insightful look at this country's political rot that also opts for cheap sight gags and salty language to clumsily widen its appeal. "I need some more fucking Hispanics!" yells Zimmer before reassuring his staff that the office is still a color- and gender-neutral environment.
Stewart is expert at skewering national politics without fear or favor, but Irresistible falls well short of pure evisceration. He's clearly too fond of all the cogs in the machine just as much as he's critical of them. "She's a fucking genius! Oh, I hate her so much," Zimmer wails after Brewster out-maneuvers him yet again. There's a certain level of wonkish admiration, if not awe, for the lacerating efficacy of these political beasts. He lacks the dark indignation, or possibly sheer revulsion, that someone like Armando Iannucci so brilliantly conjures. It's Veep lite. And although, in this crushingly nihilistic Trump era, such a sunny approach might seem naïve, maybe that's not such a bad thing. Stewart's basic decency requires a fundamental belief that things can always get better. And if that tenet isn't completely irresistible, it really should be.
Normal Kid, Hooked on Oxy
The Best Political Ad Ever
Seven Movies About Living Under Political Conflict
Tags: Armando Iannucci, Chris Cooper, Irresistible, Jon Stewart, Rose Byrne, Steve Carell
← 'Eurovision Song Contest: The Story of Fire Saga'
'Parachutes' and 'We Are Not From Here' →
Stephen Garrett
Stephen Garrett is the former film editor of 'Time Out New York' and has written about the movie industry for more than 20 years. A Rotten Tomatoes certified reviewer, Garrett is also the founder of Jump Cut, a marketing company that creates trailers and posters for independent, foreign-language, and documentary films.


On January 11, a Monday, I heard about David Bowie's passing. He had shuffled off this mortal coil the prior day. I was shocked by the news, though I'd hardly have described myself as a devout Bowie fan. As that Monday morning segued into afternoon, I couldn't get Bowie out of my mind. Neither could my wife Sandy, who is far less of a Bowie devotee than I am. We were drawn, as if by an invisible force, to WXPN, the Philadelphia area's most astute music radio station. In tribute to the great man they were playing Bowie music exclusively for much of the day. We listened for two or three hours, and when XPN turned to other programming at 7 PM Sandy and I put on WPRB, the Princeton University station, to see if Bowie reigned there. He did, and we listened to his songs for several hours more. I can't think of many artists who, following their deaths, would receive radio homages of this sort. And of course the Bowie outpourings weren't limited to radio. Media coverage of his life and death has been enormous and heartfelt worldwide.
Naively I suppose, I've been amazed by the degree of attention that Bowie, in death, has attracted. I've been very glad to learn that countless journalists and media commentators held him in really high esteem, not to mention legions of fans. On January 11 Bowie was a top global story, probably the top story, in newspapers, on television and throughout cyberspace.
And I'm struck by the extent that Bowie's death has touched me. My reaction took me by surprise, wasn't something I'd have predicted. I don't know the last time a celebrity's demise hit me so strongly. Maybe it was in 1980, when John Lennon left us. Lennon was one of my heroes. Though Bowie wasn't, I admired the heck out of him during a swath of the 1970s and always have considered him to be a cultural giant. That accounts for part of my sadness, but not for all. So, what else was it about Bowie's death that got to me? I've thought about this for awhile and have come up with two main reasons.
David Bowie recorded 26 studio albums. His final work, Blackstar, entered the marketplace on his 69th birthday, two days before he died. I own six of his albums. All of them are from the 1970s except for 2002's Heathen. I love my six from the 70s. Each I believe is great, and the greatest to me is 1976's head-spinning and majestic Station To Station. I don't know why I stopped buying Bowie's releases after Station To Station. I read about them, heard some tunes on the radio, but didn't lay down any dollars again till 26 years later. Nothing new, I was just plain stupid. Here was a guy with a brilliant track record, whose albums I once had spun over and over, and nonchalantly I had abandoned his singular musical journey. It wasn't till a few nights ago that I realized what I had missed. WXPN and WPRB played tracks from Low, Lodger, The Next Day and other albums I barely, if at all, was familiar with. The music, as I might have guessed, was fantastic. And I played Heathen on my CD player. I hadn't listened to it in so long I didn't recall a single number. David, I only partly knew ya'. I should have kept up. Mea culpa.
Still, missing out on a lot of David Bowie's music isn't the end of the world. But it's an example of not paying attention to life, of letting life pass on by without proper appreciation. And that's a big deal. I try fairly hard to savor the moment and to do the right thing, but there's mucho room for improvement. Bowie's death somehow made me look at myself and my underachieving approach. Ouch. Ouch. Ouch.
And Bowie's passing did more than that. In the recesses of my mind I discovered some connective tissues that bonded me with him. You see, David Bowie was only a smattering of months older than I, and because of that I subconsciously had felt a kinship with him. And so when he died an internal link to my younger self broke and I started to contemplate the big picture even more deeply. I mulled over the kinds of thoughts that aren't reassuring. Such as: Even if I make it for another 25 years I'm a whole lot closer to the end than to the beginning. Man, that's a bummer. My excellent friend Jeff recently asked me if I believe that human life goes on in a spirit mode after the flesh fails. He's a believer. I'm not. My take is that each person's trip is confined to Planet Earth and that the trip is one-and-done.
That said, on with the party. I plan to buy a bunch of David Bowie albums soon, to catch up with someone, now-departed, whom I miss.
I am aware of the enormous regret about missing out on Bowie in your post. But more than that, you are now acutely aware of the passage of time—and the brevity of life. It's a stage we all go through. You may find this hard to believe, but this becomes less and less important as you age. You get better at living in the present, and life becomes more beautiful!
You have a very good outlook and attitude.
I was in France when he died and BBC talked about him all day. The world was shocked and saddened by his death.
Deservedly, he was immensely popular.
Neil, what a moving and lovely tribute you've written. Thanks to a friend tipping me off, I listened to the WXPN radio tribute to Bowie the entire day in the studio. I wish I'd known to flip over to Princeton's radio station, too!! I found myself incredibly distracted and feeling sad while difficult to work that day. I agree w/ Joyce above – I think it was the shock, as I never dreamed that one of my music heroes (and a talented artist) would be taken away quite that young. Enjoying reading your blog very much. Send my regards to Sandra, also.
You know, somehow I hadn't realized that Bowie had as many devoted fans as he did. Although I wasn't an enormous fan of his, his death was a very sobering event for me.
I was one of those kids that didn't quite fit in and found Bowie's music spoke to me. I like to think he encouraged me in some ways to be myself instead of trying so hard to fit in with the socially acceptable crowd.
Thanks for reading my article. I know what you mean. Bowie was great and valuable in a number of ways.
I found ya through nissetje. I like your blog. Glad I found ya.
A fantastic post. You have articulated brilliantly what, I suspect, a great many people have been feeling since January 11. This one made my day. Thank you.
Lovely tribute. Like many others, I suspect, I found myself catching up with his back catalog after his death, buying CDs of albums that were inside my head but not present in my collection. My faves? probably Hunky Dory, Heroes and Low. Must reinvestigate Station to Station following your mention.
I listened to Aladdin Sane a few nights ago. It's great.
Bowie was a hugely creative and talented person. One of the greats.
My husband tapped me on the shoulder while I was brushing my teeth. "Your Hero died last night." I said, "What??" He continued, "David Bowie died last night." My knees buckled and I fell to the floor.
It's been 3 years now, and I still have not gotten up. I fell in love with David in the 8th grade. I'll be 60 this year.
Anyway, thank you for your blog. I miss him every day, in every way.
Hi Debbie. Recently there was a Bowie tribute concert in Philadelphia (I live near Philly), and there probably were similar shows in many areas. . Loads of people miss him. He was terrific.


text:
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace Microsoft.Azure.EventHubs.Amqp
{
    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Threading;
    using System.Threading.Tasks;
    using Microsoft.Azure.Amqp;
    using Microsoft.Azure.Amqp.Framing;

    class AmqpPartitionReceiver : PartitionReceiver
    {
        readonly object receivePumpLock;
        readonly ActiveClientLinkManager clientLinkManager;
        IPartitionReceiveHandler receiveHandler;
        CancellationTokenSource receivePumpCancellationSource;
        Task receivePumpTask;

        public AmqpPartitionReceiver(
            AmqpEventHubClient eventHubClient,
            string consumerGroupName,
            string partitionId,
            string startOffset,
            bool offsetInclusive,
            DateTime? startTime,
            long? epoch)
            : base(eventHubClient, consumerGroupName, partitionId, startOffset, offsetInclusive, startTime, epoch)
        {
            string entityPath = eventHubClient.ConnectionStringBuilder.EntityPath;
            this.Path = $"{entityPath}/ConsumerGroups/{consumerGroupName}/Partitions/{partitionId}";
            this.ReceiveLinkManager = new FaultTolerantAmqpObject<ReceivingAmqpLink>(this.CreateLinkAsync, this.CloseSession);
            this.receivePumpLock = new object();
            this.clientLinkManager = new ActiveClientLinkManager((AmqpEventHubClient)this.EventHubClient);
        }

        string Path { get; }

        FaultTolerantAmqpObject<ReceivingAmqpLink> ReceiveLinkManager { get; }

        protected override Task OnCloseAsync()
        {
            // Close any ReceiveHandler (this is safe if there is none) and the ReceiveLinkManager in parallel.
            this.ReceiveHandlerClose();
            this.clientLinkManager.Close();
            return this.ReceiveLinkManager.CloseAsync();
        }

        protected override async Task<IList<EventData>> OnReceiveAsync(int maxMessageCount, TimeSpan waitTime)
        {
            bool shouldRetry;

            var timeoutHelper = new TimeoutHelper(waitTime, true);

            do
            {
                shouldRetry = false;

                try
                {
                    try
                    {
                        ReceivingAmqpLink receiveLink = await this.ReceiveLinkManager.GetOrCreateAsync(timeoutHelper.RemainingTime()).ConfigureAwait(false);
                        IEnumerable<AmqpMessage> amqpMessages = null;
                        bool hasMessages = await Task.Factory.FromAsync(
                            (c, s) => receiveLink.BeginReceiveMessages(maxMessageCount, timeoutHelper.RemainingTime(), c, s),
                            a => receiveLink.EndReceiveMessages(a, out amqpMessages),
                            this).ConfigureAwait(false);

                        if (receiveLink.TerminalException != null)
                        {
                            throw receiveLink.TerminalException;
                        }

                        this.EventHubClient.RetryPolicy.ResetRetryCount(this.ClientId);

                        if (hasMessages && amqpMessages != null)
                        {
                            IList<EventData> eventDatas = null;
                            foreach (var amqpMessage in amqpMessages)
                            {
                                if (eventDatas == null)
                                {
                                    eventDatas = new List<EventData>();
                                }

                                receiveLink.DisposeDelivery(amqpMessage, true, AmqpConstants.AcceptedOutcome);
                                eventDatas.Add(AmqpMessageConverter.AmqpMessageToEventData(amqpMessage));
                            }

                            return eventDatas;
                        }
                    }
                    catch (AmqpException amqpException)
                    {
                        throw AmqpExceptionHelper.ToMessagingContract(amqpException.Error);
                    }
                }
                catch (Exception ex)
                {
                    // Evaluate retry condition?
                    this.EventHubClient.RetryPolicy.IncrementRetryCount(this.ClientId);
                    TimeSpan? retryInterval = this.EventHubClient.RetryPolicy.GetNextRetryInterval(this.ClientId, ex, timeoutHelper.RemainingTime());
                    if (retryInterval != null)
                    {
                        await Task.Delay(retryInterval.Value).ConfigureAwait(false);
                        shouldRetry = true;
                    }
                    else
                    {
                        throw;
                    }
                }
            } while (shouldRetry);

            // No messages to deliver.
            return null;
        }

        protected override void OnSetReceiveHandler(IPartitionReceiveHandler newReceiveHandler)
        {
            lock (this.receivePumpLock)
            {
                if (this.receiveHandler != null)
                {
                    // Notify existing handler first (but don't wait).
                    this.receiveHandler.ProcessErrorAsync(new OperationCanceledException("New handler has registered for this receiver.")); // .Fork();
                }

                this.receiveHandler = newReceiveHandler;
                if (this.receiveHandler != null)
                {
                    // We have a new receiveHandler, ensure pump is running.
                    if (this.receivePumpTask == null)
                    {
                        this.receivePumpCancellationSource = new CancellationTokenSource();
                        this.receivePumpTask = this.ReceivePumpAsync(this.receivePumpCancellationSource.Token);
                    }
                }
                else
                {
                    // We have no receiveHandler, ensure pump is shut down.
                    if (this.receivePumpTask != null)
                    {
                        this.receivePumpCancellationSource.Cancel();
                        this.receivePumpCancellationSource.Dispose();
                        this.receivePumpCancellationSource = null;
                        this.receivePumpTask = null;
                    }
                }
            }
        }

        async Task<ReceivingAmqpLink> CreateLinkAsync(TimeSpan timeout)
        {
            var amqpEventHubClient = ((AmqpEventHubClient)this.EventHubClient);
            var csb = this.EventHubClient.ConnectionStringBuilder;
            var timeoutHelper = new TimeoutHelper(csb.OperationTimeout);
            AmqpConnection connection = await amqpEventHubClient.ConnectionManager.GetOrCreateAsync(timeoutHelper.RemainingTime()).ConfigureAwait(false);

            // Authenticate over CBS
            var cbsLink = connection.Extensions.Find<AmqpCbsLink>();

            ICbsTokenProvider cbsTokenProvider = amqpEventHubClient.CbsTokenProvider;
            Uri address = new Uri(csb.Endpoint, this.Path);
            string audience = address.AbsoluteUri;
            string resource = address.AbsoluteUri;
            var expiresAt = await cbsLink.SendTokenAsync(cbsTokenProvider, address, audience, resource, new[] { ClaimConstants.Listen }, timeoutHelper.RemainingTime()).ConfigureAwait(false);

            AmqpSession session = null;
            try
            {
                // Create our Session
                var sessionSettings = new AmqpSessionSettings { Properties = new Fields() };
                session = connection.CreateSession(sessionSettings);
                await session.OpenAsync(timeoutHelper.RemainingTime()).ConfigureAwait(false);

                FilterSet filterMap = null;
                var filters = this.CreateFilters();
                if (filters != null && filters.Count > 0)
                {
                    filterMap = new FilterSet();
                    foreach (var filter in filters)
                    {
                        filterMap.Add(filter.DescriptorName, filter);
                    }
                }

                // Create our Link
                var linkSettings = new AmqpLinkSettings();
                linkSettings.Role = true;
                linkSettings.TotalLinkCredit = (uint)this.PrefetchCount;
                linkSettings.AutoSendFlow = this.PrefetchCount > 0;
                linkSettings.AddProperty(AmqpClientConstants.EntityTypeName, (int)MessagingEntityType.ConsumerGroup);
                linkSettings.Source = new Source { Address = address.AbsolutePath, FilterSet = filterMap };
                linkSettings.Target = new Target { Address = this.ClientId };
                linkSettings.SettleType = SettleMode.SettleOnSend;

                if (this.Epoch.HasValue)
                {
                    linkSettings.AddProperty(AmqpClientConstants.AttachEpoch, this.Epoch.Value);
                }

                var link = new ReceivingAmqpLink(linkSettings);
                linkSettings.LinkName = $"{amqpEventHubClient.ContainerId};{connection.Identifier}:{session.Identifier}:{link.Identifier}";
                link.AttachTo(session);

                await link.OpenAsync(timeoutHelper.RemainingTime()).ConfigureAwait(false);
                var activeClientLink = new ActiveClientLink(
                    link,
                    this.EventHubClient.ConnectionStringBuilder.Endpoint.AbsoluteUri, // audience
                    this.EventHubClient.ConnectionStringBuilder.Endpoint.AbsoluteUri, // endpointUri
                    new[] { ClaimConstants.Listen },
                    true,
                    expiresAt);

                this.clientLinkManager.SetActiveLink(activeClientLink);

                return link;
            }
            catch
            {
                // Cleanup any session (and thus link) in case of exception.
                session?.Abort();
                throw;
            }
        }

        void CloseSession(ReceivingAmqpLink link)
        {
            link.Session.SafeClose();
        }

        IList<AmqpDescribed> CreateFilters()
        {
            if (string.IsNullOrWhiteSpace(this.StartOffset) && !this.StartTime.HasValue)
            {
                return null;
            }

            List<AmqpDescribed> filterMap = new List<AmqpDescribed>();
            if (!string.IsNullOrWhiteSpace(this.StartOffset) || this.StartTime.HasValue)
            {
                // In the case of DateTime, we want to be amqp-compliant so
                // we should transmit the DateTime in a amqp-timestamp format,
                // which is defined as "64-bit two's-complement integer representing milliseconds since the unix epoch"
                // ref: http://docs.oasis-open.org/amqp/core/v1.0/amqp-core-complete-v1.0.pdf
                string sqlExpression = !string.IsNullOrWhiteSpace(this.StartOffset) ?
                    this.OffsetInclusive ?
                        string.Format(CultureInfo.InvariantCulture, AmqpClientConstants.FilterInclusiveOffsetFormatString, this.StartOffset) :
                        string.Format(CultureInfo.InvariantCulture, AmqpClientConstants.FilterOffsetFormatString, this.StartOffset) :
                    string.Format(CultureInfo.InvariantCulture, AmqpClientConstants.FilterReceivedAtFormatString, TimeStampEncodingGetMilliseconds(this.StartTime.Value));
                filterMap.Add(new AmqpSelectorFilter(sqlExpression));
            }

            return filterMap;
        }

        // This is equivalent to Microsoft.Azure.Amqp's internal API TimeStampEncoding.GetMilliseconds
        static long TimeStampEncodingGetMilliseconds(DateTime value)
        {
            DateTime utcValue = value.ToUniversalTime();
            double milliseconds = (utcValue - AmqpConstants.StartOfEpoch).TotalMilliseconds;
            return (long)milliseconds;
        }

        async Task ReceivePumpAsync(CancellationToken cancellationToken)
        {
            // Loop until pump is shutdown or an error is hit.
            while (!cancellationToken.IsCancellationRequested)
            {
                IEnumerable<EventData> receivedEvents;

                try
                {
                    int batchSize;
                    lock (this.receivePumpLock)
                    {
                        if (this.receiveHandler == null)
                        {
                            // Pump has been shutdown, nothing more to do.
                            return;
                        }
                        batchSize = receiveHandler.MaxBatchSize;
                    }

                    receivedEvents = await this.ReceiveAsync(batchSize);
                }
                catch (Exception e)
                {
                    await this.ReceiveHandlerProcessErrorAsync(e).ConfigureAwait(false);
                    break;
                }

                try
                {
                    await this.ReceiveHandlerProcessEventsAsync(receivedEvents).ConfigureAwait(false);
                }
                catch (Exception userCodeError)
                {
                    await this.ReceiveHandlerProcessErrorAsync(userCodeError).ConfigureAwait(false);
                    break;
                }
            }

            this.ReceiveHandlerClose();
        }

        // Encapsulates taking the receivePumpLock, checking this.receiveHandler for null,
        // calls this.receiveHandler.CloseAsync (starting this operation inside the receivePumpLock).
        void ReceiveHandlerClose()
        {
            lock (this.receivePumpLock)
            {
                if (this.receiveHandler != null)
                {
                    if (this.receivePumpTask != null)
                    {
                        this.receivePumpCancellationSource.Cancel();
                        this.receivePumpCancellationSource.Dispose();
                        this.receivePumpCancellationSource = null;
                        this.receivePumpTask = null;
                    }

                    this.receiveHandler = null;
                }
            }
        }

        // Encapsulates taking the receivePumpLock, checking this.receiveHandler for null,
        // calls this.receiveHandler.ProcessErrorAsync (starting this operation inside the receivePumpLock).
        Task ReceiveHandlerProcessErrorAsync(Exception error)
        {
            Task processErrorTask = null;
            lock (this.receivePumpLock)
            {
                if (this.receiveHandler != null)
                {
                    processErrorTask = this.receiveHandler.ProcessErrorAsync(error);
                }
            }

            return processErrorTask ?? Task.FromResult(0);
        }

        // Encapsulates taking the receivePumpLock, checking this.receiveHandler for null,
        // calls this.receiveHandler.ProcessErrorAsync (starting this operation inside the receivePumpLock).
        Task ReceiveHandlerProcessEventsAsync(IEnumerable<EventData> eventDatas)
        {
            Task processEventsTask = null;
            lock (this.receivePumpLock)
            {
                if (this.receiveHandler != null)
                {
                    processEventsTask = this.receiveHandler.ProcessEventsAsync(eventDatas);
                }
            }

            return processEventsTask ?? Task.FromResult(0);
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
Version for visually impaired
State Bodies
Main / Events / Archive
Meeting to discuss development of government communications system
Belarus President Aleksandr Lukashenko has called a conference to discuss the development of the government communications system.
Meeting with Chairman of Emaar Properties PJSC Mohamed Alabbar
Belarus is interested in implementing projects in the real economic sector with the United Arab Emirates, Belarus President Aleksandr Lukashenko said as he met with Mohamed Alabbar, Chairman of Emaar Properties PJSC, one of the world's largest real estate development companies.
Greetings to Patriarch of Moscow and all Russia Kirill
Belarus President Aleksandr Lukashenko has sent a letter of birthday greetings to Patriarch of Moscow and all Russia Kirill.
Greetings to Gotabaya Rajapaksa on reelaction as Sri Lanka President
Belarus President Aleksandr Lukashenko has congratulated Gotabaya Rajapaksa on winning Sri Lanka presidential election.
Olympic meeting of National Olympic Committee
Victories at Olympic Games unite the nation and inspire a sense of pride for the country, Belarus President Aleksandr Lukashenko said as he opened the Olympic meeting of the National Olympic Committee (NOC) of Belarus.
Greetings to Prince Albert II of Monaco
Belarus President Aleksandr Lukashenko sent greetings to Prince Albert II of Monaco on the occasion of the country's national holiday of the Principality of Monaco.
Greetings to Sultan Qaboos bin Said al Said of Oman
Belarus President Aleksandr Lukashenko has sent greetings to Sultan Qaboos bin Said al Said of Oman as the country celebrates National Day.
Elections to House of Representatives of Belarus' National Assembly
Belarus President Aleksandr Lukashenko cast his vote in the elections to the House of Representatives of the National Assembly of Belarus on 17 November.
Session to discuss operation of Belarusian yeast factories
Belarus President Aleksandr Lukashenko met with high-ranking officials on 15 November to discuss the operation of Belarusian yeast factories.
Greetings to participants and guests of the Dazhynki 2019 regional harvest festival in Mogilev
Belarus President Aleksandr Lukashenko has sent greetings to participants and guests of the Dazhynki 2019 regional harvest festival in Mogilev.
Type a word or phrase in the search box. Select the section where you want to search for a document. A word should consist of at least two letters.
To search for documents that contain several words select the field "All of these words".
To search for documents that contain any of the words select the field "Any of these words".
To search for documents that contain the phrase select the field "With the phrase". The phrase should consist of at least five symbols.
The search is conducted without regard to:
To narrow your search results select "During the period".
In sections of the portal
All sections Events
Personnel Decisions
During the period
Year 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
Status and Authority
Special Funds of the President
Reception Hours for the Public
State System
State Awards and Prizes
Archives from 2004
© 2020, The Press Service of the President of the Republic of Belarus