--- layout: post title: Slow Cooker Asian Style Pork Belly date: 2013-04-29 10:56:08.000000000 -04:00 categories: [] tags: [] status: publish type: post published: true meta: _edit_last: '1' aktt_notify_twitter: 'no' dsq_thread_id: '1243700771' author: login: cint email<EMAIL_ADDRESS>display_name: Jacinta first_name: Jacinta last_name: '' ---
Hello my dear readers, I'm still here, just a little preoccupied with the house, otherwise all is good in our world. As the weather is getting cooler by the week, I'm finding my recipes are changing along with the season. Hearty meals are starting to appear on our family menu. My slow cooker is earning it's keep, not only due to the change in menu, but also my avoidance of using the oven. The oven is spotless and I don't fancy having to clean it every week before our house open. Wondering how many weeks I last before I cave and use it!
 I haven't cooked pork belly in the slow cooker before, so it was an experiment. I'm happy to say it was a success, with both the girls liking it! The meat cooks up oh so tender. The marinade turns into a delicious caramel-like sauce, perfect for drizzling over the dish once served up.
Enjoy! Jacinta x


{% extends "_post.html" %} {%hyde title: "Fruity" created: 2006-07-21 15:43:23 %} {% block article %} {%article%}
I released Tangerine 0.2.6, which includes some minor bug fixes. Also now that SLED 10 is out, I can do a screencast showing Tangerine running under it. So I did, and you can see it here.
Update: It was suggested to me that a screenshot might be needed too, so here you go :)


Train Times
Your train on time
Current Train Schedule
Train Name
Destination
Frequency (min)
Next Arrival
Minutes Away
Train Name
Destination
First Train Time (HH:mm)
Frequency
Add Train


Provides implementations of
SnacCommand
s and associated command factories for SNAC family
0x13
, which provides a rather complex system of storing miscellaneous data (like the buddy list) on the server. @see net.kano.joscar.ssiitem


Welcome to a brief overview of WebGoat.
WebGoat uses the Apache Tomcat server but can run in any application server. It is configured to run on localhost although this can be easily changed, see the "Tomcat Configuration" section in the Introduction.
1. Lesson Categories in WebGoat. Click on a Category to see specific Lessons.
2. This will show the underlying Java source code.
3. This will show the complete solution of the selected lesson.
4. This will show goals and objectives of the lesson.
5. This will show technical hints to solve the lesson.
6. This shows the HTTP request data
7. If you want to restart a lesson you can use this link.
Always start with the lesson plan. Then try to solve the lesson and if necessary, use the hints. The last hint is the solution text if applicable. If you cannot solve the lesson using the hints, you may view the solution for complete details.
To read and edit parameters and cookies you need a local proxy like OWASP ZAP to intercept the HTTP request. More information on ZAP can be found in the "Useful Tools" section in the Introduction.
WebGoat uses spring-security.xml to configure users.
<!-- Authentication Manager --> <authentication-manager alias="authenticationManager"> <authentication-provider> <user-service> <user name="guest" password="guest" authorities="ROLE_WEBGOAT_USER" /> <user name="webgoat" password="webgoat" authorities="ROLE_WEBGOAT_ADMIN" /> <user name="server" password="server" authorities="ROLE_SERVER_ADMIN" /> </user-service> </authentication-provider> </authentication-manager>
Usually WebGoat only requires logging in with the user:guest and password:guest. But maybe in laboratory you have made a setup with one server and a lot of clients. In this case you might want to have a user for every client, you will have to alter /WEB-INF/spring-security.xml to add additional users. We recommend not to use real passwords as the passwords are stored in plain text in this file!
Adding a user is straight forward. You can use the guest entry as an example. The added users should have the same role as the guest user. The new user/password will not show on the login page. Add lines like this to the /WEB-INF/spring-security.xml file:
<user name="guest2" password="guest2" authorities="ROLE_WEBGOAT_USER" /> ...


Norway wealth fund resumes work on blacklisting worst greenhouse gas emitters
by Gwladys FoucheOSLO (Reuters) - Norway’s $1 trillion wealth fund, the world’s largest, will resume its work on blacklisting greenhouse gas emitters, a senior official told Reuters, which could lead the fund to divest investments in one or more oil, steel or cement multinationals.
The fund is forbidden by parliament from investing in companies that produce nuclear weapons, landmines, or tobacco, among other criteria.
Carbon emissions became a criterion for exclusion in 2016, and in 2017 the Council on Ethics, the fund’s ethics watchdog, recommended “a small handful” of oil, steel or cement companies be excluded for emitting too much greenhouse gas
Since then, recommendations had been under review by the board of the central bank, which oversees the fund, but a decision has been delayed several times.
In November 2018, the bank said it needed clarification from the finance ministry as to what corporate behavior would be considered grounds for exclusion.
The bank has now received the necessary clarification and the Council on Ethics is revising its earlier list of companies to consider, said Egil Matsen, the deputy central bank chief in charge of supervising the fund.
“My expectation is that we will have it in the next months,” Matsen said on Friday. “It is a challenging criterion, but I do expect that we will be able to make those decisions when we do receive this revised assessment from the Council.”
The exclusion work is separate from a plan to divest out of companies solely dedicated to oil and gas production and exploration, implemented to shield itself from a long-term decline in oil prices.
The fund has for years been a leader in excluding companies on ethical consideration and could encourage other international investors to do the same.
The Norwegian parliament’s decision in 2015 to make the fund divest from companies that derive 30% or more of its revenues from thermal coal has led other international investors to follow suit, among them the insurer Allianz (ALVG.DE).


Zodwa Wabantu to launch women’s fragrance: ‘I want them to have my attitude’
Qhama Dayile
Cape Town - This December, controversial entertainer Zodwa Wabantu will be launching Touchable Day and Touchable Night eau de parfum.
At first, the 34-year-old wanted to come up with an alcohol brand but opted for a fragrance instead. “I thought of many business ideas and alcohol was at the top of my list, but I changed my mind because I wanted something that wasn’t so predictable and would end up killing people,” she told DRUM.
“People know I drink but I wanted something that would make a difference in women’s lives, and a fragrance came to mind.”
She has taken almost a year working on the fragrance.“This is not your downtown Jozi or KZN fragrance. This is proper, and people will see another classy side to me,” she says.
Zodwa’s favourite scents are Chanel No. 5 and Dior Poison.
“I took my favourite scents and worked with something similar to get the perfect Touchable, and partnered with London-based perfume company W1C.
“The perfume was manufactured in China, taken to New York and then brought back home for Mzansi ladies,” she says.
“Get this straight: I am not the ambassador of any brand, this is my product. I went 50/50 with the company and black girl is doing magic.
The entertainer says women go through a lot daily and often need something to keep them motivated. “Many women look up to me and they aspire to have the same kind of carefree attitude as me. Some have been abused, others cheated on and others just want to boost their confidence. So if they use the fragrance they will think of me and be inspired,” she adds.
Both fragrances will be available online here.


THREE WISHES A film review by Steve Rhodes Copyright 1995 Steve Rhodes
THREE WISHES is a totally non-offensive family movie about nothing much of anything, but one that provides a pleasant, dreamy time at the local Bijou. No one attempts anything remotely resembling acting, but a series of nostalgic images feel your senses as you are transported to a simpler time. You get to be a nine year old boy in 1955 exactly as I once was. The great lovely and lush cinematography (Johnny E. Jensen) is full of the saturated colors of the movies of that era. The sets are perfect and full of 50's kitsch. I think the sets are award caliber.
Although the movie starts and ends in the present, it is set almost totally in the summer of 1955. The mother, Jeanne Hallman (Mary Elizabeth Mastrantonio), and her two sons, nine year old Tom (Joseph Mazzello) and three year old Gunther (Seth Mumy) live in a new tract housing development in California. The development is set in the middle of a desert, but the homes all have grass lawns and little scrub trees. Behind the houses are cactuses and barren land. As they drive up to the development, we see the large billboard proudly proclaiming these as "The American Dream Homes" and listing the price as $13,500. Most viewers will remark what a steal that seems. Since we moved at that time to a similar development in Texas and paid $8,000, my reaction was that California was overpriced even 40 years ago.
The family is trying to find its way since the father was a pilot who was shot down, killed, and lost forever over Korea three years earlier. Some of the early scenes are of the Hallman family going to visit the military graveyard where the father is not buried. The mom makes do with accounting jobs she does not want and for which is not particularly well suited.
The Hallman's go to a town picnic where Jeanne is told she is "daring" for wearing shorts. Tom is humiliated by being the only one not picked for the baseball game since, as one of the kids told him matter-of-factly, "we want to win." Again, this hits home, because I was a terrible baseball player and was always picked last if at all.
Jeanne hits a drifter, Jack McCloud (Patrick Swayze), with her car. Since she broke his leg, she takes pity on him and invites him to stay at their home. As the story unfolds, it seems that he may have a secret and he may know magic or then again, maybe not. What is certain is that he has a Zen approach to teaching baseball and the local little league team, which is in the cellar, can use all of the help it can get.
The best part of the show has nothing to do with the flimsy plot. The best part is the sets. We have the 50s lovingly recreated in turquoise which has to be the color of that era. We have turquoise dial phones, refrigerators, china sets, etc. It feels as if everything, but Jeannie's hair is turquoise. It is presented much as the GE Carousel of Progress did at Disneyland for years until, sadly, they tore it down. The only part of the movie that is inauthentic is the fascination with bomb shelters and the fear of bomb blasts, which is always over emphasized in movies about the 50s. Of course, Jeanne drives a Woody, but the other cars are neat too with salmon and white two tone Fords and other classic cars. Little Gunther even has his Davy Crockett coonskin cap.
Back to the lack of acting. Heartthrob Patrick Swayze has never been much of an actor. He was fine in DIRTY DANCING, but has done nothing else worth mentioning. Here he spends the entire movie with a single pensive stare and rarely speaks. Practice a pensive look in the mirror for an hour, and you could do as well.
Mary Elizabeth Mastrantonio has had a few decent pictures, the last being CONSENTING ADULTS, but I have never been particularly impressed by her work. Here she perfects a pleasant little smile and keeps it unchanged throughout the entire movie. I think she must have used Crazy Glue.
Joseph Mazzello does not show a lot of promise, but he was superior to any of the adults. Only first time movie actor Seth Mumy does a credible job. His dream scene is full of imaginative acting. The real hero of the show is a fuzz ball of a dog that Jack owns. He is a delight to watch especially in the scene where he mimics Gunther's fright while watching King Kong on TV.
The movie has heavy stereotyping. The dads are all shown as ones that you would not want for your dad. They push their kids and do not really care about them. They mainly want to drink cocktails and wait for hunting season so they can kill all the beautiful deer in the area. The moms are stay at home types who spend most of their time being busybodies.
The film moves slowly as is it is in a trance and yet, I was caught up in it. It is not a film to analyze heavily or its spirit will vanish in front of you because of some Heisenberg uncertainty principle. It has an aura that is hard to capture in print, but then again, perhaps it is because I can identify with the era so well. With a better director (Martha Coolidge whose only decent film was RAMBLING ROSE) and a different cast, the film had potential for much more.
Oh yes, you probably want to know what all of this has to do with three wishes. Well, in the last ten minutes of the show, we get to that almost as an afterthought. Suffice it to say that it is the only attempt at seriousness and meaning in the entire film. It is a partial success. The last scene, set in the present, is excellent and a wonderful way to wrap up a show that had no direction.
THREE WISHES runs too slow at 1:48. It is rated R for a one second glimpse at Swayze's nude rear, a few bad words, and two mildly scary scenes. Most kids over 4 should be able to handle it fine. This is a show that will bore kids with short attention spans. Jeffrey (age 6 1/2) liked the show although he did not seem particularly enthused about it. He gave it a thumbs up overall, but a thumbs sideways for the brief monster dream sequence. The monster turns out to be a good guy in the dream I should point out. I can not bring myself to recommend others see this show, but I actually enjoyed it, and I give it **.
**** = One of the top few films of this or any year. A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show.  Totally unbearable.
REVIEW WRITTEN ON: October 29, 1995
Opinions expressed are mine and not meant to reflect my employer's.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Source code for Fred2.Core.Protein
# This code is part of the Fred2 distribution and governed by its
# license. Please see the LICENSE file that should have been included
# as part of this package.
__author__ = 'schubert,brachvogel,walzer,szolek'
import itertools
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
from Fred2.Core.Base import MetadataLogger
[docs]class Protein(MetadataLogger, Seq):
"""
Protein corresponding to exactly one transcript.
.. note::
For accessing and manipulating the sequence see also :mod:`Bio.Seq.Seq`
(from Biopython)
:param str gene_id: ID of the genome
:param str transcript_id: ID of the corresponding transcript
:param Transcript orig_transcript: Reference to the originating transcript
:param dict(int,list(Variant)) _vars: Nonsynonymous variants that are
assoziated with the protein.
key=position within protein,
value=list of variants at that pos
"""
newid = itertools.count().next #this is evil and has no other purpose? it does not help that there may be more than one protein from one transcript - due to variants
def __init__(self, _seq, _gene_id="unknown", _transcript_id=None, _orig_transcript=None, _vars=None):
"""
:param str _seq: String of an IUPACProtein alphabet, representing the
protein
:param str _gene_id: ID of the genome the protein originated from
:param str _transcript_id: ID of the transcript the protein originated
from
:param Transcript _orig_transcript: Reference to the originating
transcript
:param dict(int,list(Variant)) _vars: Nonsynonymous variants that are
assoziated with the protein.
key=position within protein,
value=list of variants at that pos
"""
# Init parent type:
MetadataLogger.__init__(self)
Seq.__init__(self, _seq, IUPAC.IUPACProtein)
# Init own member:
if _vars is None:
self.vars = dict()
else:
self.vars = _vars # {prot-position: list(variant)}
self.orig_transcript = _orig_transcript
self.transcript_id = "Protein_%i"%Protein.newid() if _transcript_id is None else _transcript_id
self.gene_id = _gene_id
def __getitem__(self, index):
"""
Overrides :meth:`Bio.Seq.Seq.__getitem__` (from Biopython)
:param int index: position within the primary sequence
:returns: Protein -- A protein consisting of the single letter at
position :attr:`index`.
"""
#TODO: does not work that way. Refactoring needed!
#Do we generate a new transcript ID -> variant's mutation syntax has to be updated as well
#Does it make sense to generate a new transcript as well??? probably not?
item = str(self)[index]
return Protein(item, self.gene_id, self.orig_transcript, self.vars)
def __repr__(self):
# Header:
lines = []
lines += ["PROTEIN: %s (aa-seq)" % str(self)]
lines += ["\t %s (orig transcript)"%self.transcript_id]
# Variants:
lines += ["\t VARIANTS:"]
for vpos, vset in self.vars.iteritems():
for v in vset:
lines.append('\t pos %i: %s'%(vpos, v))
return '\n\t'.join(lines) + '\n'
def __eq__(self, other):
return str(self) == str(other)
def __lt__(self, other):
return str(self) <= str(other)
def __ge__(self, other):
return str(self) >= str(other)
def __cmp__(self, other):
return cmp(str(self), str(other))
def __hash__(self):
return hash(str(self))


Weather forecasting we take for granted on the daily. We are used to the ability to reference any device for the latest information that will save us time. It lets us know whether to wear a jacket or not outside. We plan trips around weather. Weather decides if an event will be indoors or outdoors. The National Meteorological Center/National Centers for Environmental Prediction has been developing a program since the early 50s which they refer to as the Global Forecasting System or GFS. Since its initial release, there have been many increments of development. The most recent iteration uses a module called FV3 which stands for: the Finite Volume Model on the Cubed Sphere Grid Version 3. The increase in performance given by the FV3 extension can be seen in the following figure from weather.gov [1]
The performance gains from the FV3 module stem from its staggered wind interpolation, updated condensate loading, and mass conservation equations. Staggered wind interpolation means the vector containing wind direction and velocity only is calculated after the physics returns its tendencies, then couples this information together to dynamically solve for the trajectory.
The total mass of dry air and water categories is solved for by dynamical equations. This incoprorates the effect of condensate loading into the air mass without a special paramerization for loading. [2]
The dry air mass (per unit area) can be given as:
$\delta{m_d}$ refers to the dry mass change in an air mass. $\delta{p^{*}}$ is the water category mass. N is the precise number of water species used in the simulation (e.g Vapors). Aerosols and ozone are negligible in this system as they are very small [2]
where $Q_m = \delta{p^{*}q_{m}}$ is the tracer mass.
Since dry mass should be conserved by the physical parametrizations [2], $\delta{m_d}$ should be a constant in each grid cell for prediction. This gives a condition for dry mass conservation as [2]:
where $\Delta{M} = 1 + \delta{\tau}\sum{m=1}{N}\frac{dq_{i}}{dt}$. The physics package from GFS returns a rate of change in tracer mass $dQ_m/dt$ and is independent of whether the total air mass or dry air mass is solved with. This updates through this following equation[2]:
This finally gives an algorithm for mass conservation[2]:
Understanding the conservation of dry and wet air mass helps us better understand cold and warm fronts. Cold fronts typically bring precipitation where warm fronts bring more pleasant weather. Fronts are developed by the positioning of dry and wet air mass. The heated wet air mass rises and creates clouds which cause precipitation. This results in a cold front, and consequently gloomy days. Warm fronts are given by the opposite effect. Designing systems with conservation of air masses allows us to make more accurate physics simulations of weather, and better weather predictions means your family vacation will not be mysteriously rained out :-)
Exported from analysis/climatemodels.ipynb
committed by Morgan Sandler on Thu Apr 29 18:34:11 2021 revision 1, f79759b


Run the scenario¶
Choose your scenario¶
Once you have create your own scenario, or if you want to run a pre-defined scenario, in the main file fill the argument of config_parser.read_scen()with the name of your scenario like this for example:
scenario = config_parser.read_scen('test/test_6.ini')
Ublox initialisation¶
Then you have to initialise the communication with the Ublox receiver. First of all, fill the COM port like this:
ubloxcnx = Ublox(com='COM6')
Then you have to choose which reset you want to make between ‘Cold RST’, ‘Warm RST’ or ‘Hot RST’, like this:
ubloxcnx.reset(command='Cold RST')
Then you have to enable and disable which message you want or don’t want to receive from the receiver, you can:
- enable:
- ephemerides message thanks to ‘EPH’
- ionospheric messages thanks to ‘HUI’
- pseudo-range messages thanks to ‘RAW’
- if you want all the UBX data just put ‘UBX’
- position messages thanks to ‘GGA’
- if you want all the NMEA data just put ‘NMEA’
- disable:
- all NMEA message thanks to ‘NMEA’
- all UBX message thanks to ‘UBX’
Here is an example of how to enable/disable message:
ubloxcnx.enable(command='NMEA')
ubloxcnx.enable(command='UBX')
If you don’t want to get any UBX message, please comment the following line:
thread_3 = AcquireData(3)
thread_3.start()
Spectracom initialisation¶
To make the connexion with the Spectracom, you need to fill the argument of Spectracom(), like this for example:
spectracomcnx = Spectracom('USB0::0x14EB::0x0060::200448::INSTR')


Global Goals:BTS
the visualization can be put here
color map can be put here
NO POVERTY
1.3
1.5
ZERO HUNGER
2.2
2.4
GOOD HEALTH
AND WELL-BEING
3.4
3.8
QUALITY EDUCAION
4.1
4.4
GENDER EQUALITY
5.4
5.5
CLEAN WATER
AND SANITATION
6.5
6.6
AFFORDABLE AND CLEAN
ENERGY
7.2
7.3
DECENT WORK AND
ECONOMIC GROWTH
8.4
8.5
INDUSTRY, INNOVATION
AND INFRASTRUCTURE
9.4
9.5
REDUCED INEQUALITIES
10.1
10.7
SUSTAINABLE CITIES
AND COMMUNITIES
11.1
11.2
RESPONSIBLE CONSUMPTION
AND PRODUCTION
12.1
12.5
CLIMATE ACTION
13.1
13.2
LIFE BELOW WATER
14.1
14.4
LIFE ON LAND
15.2
15.5
PEACE, JUSTICE AND
STRONG INSTITUTIONS
16.4
16.6
PARTNERSHIPS FOR
THE GOALS
17.11
17.13


Apo Reef is a famous diving site in the Philippines which is the second largest coral reef system in the world. Sharks, Manta Rays, Turtles and more marine lives can be found in the reef. Apo Reef is located in Sablayan, Occidental Mindoro, Luzon, Philippines.
Apo Reef is considered as the number 1 dive site in the Philippines which is located in Sablayan, Occidental Mindoro. Apo Reef is a triangular coral formation, second-largest coral reef system in the world next to Great Barrier Reef in Australia. It is a 34-kilometer reef which is a bountiful habitat of marine life forms.
A narrow channel divides the reef system into two lagoon systems from north to south with beautiful sandy bottoms.
School of fish can be found in Apo Reef. Jellyfish, white-tip and black-tip reef sharks, Manta Rays, turtles, yellow margin triggerfish are a few samples of what you can see there.
Apo Reef is considered as a Natural Park which is a buffer zone. Fishing is completely banned around the location.
Apo Island. The largest island with a shallow lagoon clothed with mangrove forest. This is the drop off point to the visiting divers.
Apo Menor Islet. Composed of rocky limestone and few mangroves.
Take a plane flight from Manila to San Jose Airport in Occidental Mindoro. Then, take a land travel from the airport to Sablayan, biggest municipality in the Philippines, about 2-3 hour ride.
You can also travel by the sea. Get on board with a ferry going to Abra de Ilog. Then take a ride going to Sablayan.
Cayos de Bajo. A coralline rock formation with no vegetation
Dives can be expensive. There are lots of tours and guides in Apo Reef so please check their sites first before jumping in and backpacking.


ABAP Quick Fixes - Replace READ TABLE TRANSPORTING NO FIELDS with LINE_EXISTS
If you prefer new way of checking existance of the entrie in internal table, then you can use this quick fix to replace READ TABLE TRANSPORTING NO FIELDS to LINE_EXISTS>
Works only if after READ TABLE TRANSPORTING NO FIELDS statement you can see IF SY-SUBRC EQ/= 0 OR IF SY-SUBRC NE/<> 0 is found


Employee Time Keeping
Employee ID
Password
Error Mesage: Invalid Entry.
IN
OUT
Activity Log
Test Employee Data


Module CTaskTimer
The class for task
This is version 0.9 beta of the class for tasks
Global(s)
| CTaskTimer() |
Constructor of the class CTaskTimer |
| tasktimer |
A global object of the class CTaskTimer This is the default object |
Type CTaskTimer
| CTaskTimer.empty() |
Get if the list is empty? |
| CTaskTimer.getn() |
Get the size of the list |
| CTaskTimer.list() |
List values on screen |
| CTaskTimer.new() |
It's a fabric method for objects of the class CTaskStack |
| CTaskTimer.registerTask(name, time, func, ...) |
Add a task with a timer to the taskplaner so it can run when expected. |
| CTaskTimer.timed_run(msec) |
Let the planned tasks run |
| CTaskTimer.unregisterTaskTimer(name) |
Remove a planed task from the entry |
Global(s)
- CTaskTimer()
-
Constructor of the class CTaskTimer
- tasktimer
-
A global object of the class CTaskTimer This is the default object
Type CTaskTimer
Field(s)
- CTaskTimer.empty()
-
Get if the list is empty?
Return value
#boolean: if the stack is empty or not.
- CTaskTimer.getn()
-
Get the size of the list
Return value
#number: size of the list..
- CTaskTimer.list()
-
List values on screen
- CTaskTimer.new()
-
It's a fabric method for objects of the class CTaskStack
Return value
#CTaskTimer: new instanced object of CTaskTimer
- CTaskTimer.registerTask(name, time, func, ...)
-
Add a task with a timer to the taskplaner so it can run when expected.
Parameters
-
#string name
: The name of the label for this task -
#number time
: In which interval the task should be called in millisecounds. -
#function func
: The function which should be called in this task -
#vars ...
: List of args which should append on this task
-
- CTaskTimer.timed_run(msec)
-
Let the planned tasks run
Parameter
-
#number msec
: How much time the timedisk should consume
-
- CTaskTimer.unregisterTaskTimer(name)
-
Remove a planed task from the entry
Parameter
-
#string name
: The name of the label for this task
-
Type var
Any type of var including lists
Type vars
One or more incoming argument.


|
Wayland Client API
1.16.0
|
A surface is a rectangular area that is displayed on the screen. More...
Data Structures | |
| struct | wl_surface_listener |
Macros | |
| #define | WL_SURFACE_ENTER_SINCE_VERSION 1 |
| #define | WL_SURFACE_LEAVE_SINCE_VERSION 1 |
| #define | WL_SURFACE_DESTROY_SINCE_VERSION 1 |
| #define | WL_SURFACE_ATTACH_SINCE_VERSION 1 |
| #define | WL_SURFACE_DAMAGE_SINCE_VERSION 1 |
| #define | WL_SURFACE_FRAME_SINCE_VERSION 1 |
| #define | WL_SURFACE_SET_OPAQUE_REGION_SINCE_VERSION 1 |
| #define | WL_SURFACE_SET_INPUT_REGION_SINCE_VERSION 1 |
| #define | WL_SURFACE_COMMIT_SINCE_VERSION 1 |
| #define | WL_SURFACE_SET_BUFFER_TRANSFORM_SINCE_VERSION 2 |
| #define | WL_SURFACE_SET_BUFFER_SCALE_SINCE_VERSION 3 |
| #define | WL_SURFACE_DAMAGE_BUFFER_SINCE_VERSION 4 |
Enumerations | |
| enum | wl_surface_error { WL_SURFACE_ERROR_INVALID_SCALE = 0, WL_SURFACE_ERROR_INVALID_TRANSFORM = 1 } |
| wl_surface error values More... | |
Functions | |
| static int | wl_surface_add_listener (struct wl_surface *wl_surface, const struct wl_surface_listener *listener, void *data) |
| static void | wl_surface_set_user_data (struct wl_surface *wl_surface, void *user_data) |
| static void * | wl_surface_get_user_data (struct wl_surface *wl_surface) |
| static void | wl_surface_destroy (struct wl_surface *wl_surface) |
| Deletes the surface and invalidates its object ID. More... | |
| static void | wl_surface_attach (struct wl_surface *wl_surface, struct wl_buffer *buffer, int32_t x, int32_t y) |
| Set a buffer as the content of this surface. More... | |
| static void | wl_surface_damage (struct wl_surface *wl_surface, int32_t x, int32_t y, int32_t width, int32_t height) |
| This request is used to describe the regions where the pending buffer is different from the current surface contents, and where the surface therefore needs to be repainted. More... | |
| static struct wl_callback * | wl_surface_frame (struct wl_surface *wl_surface) |
| Request a notification when it is a good time to start drawing a new frame, by creating a frame callback. More... | |
| static void | wl_surface_set_opaque_region (struct wl_surface *wl_surface, struct wl_region *region) |
| This request sets the region of the surface that contains opaque content. More... | |
| static void | wl_surface_set_input_region (struct wl_surface *wl_surface, struct wl_region *region) |
| This request sets the region of the surface that can receive pointer and touch events. More... | |
| static void | wl_surface_commit (struct wl_surface *wl_surface) |
| Surface state (input, opaque, and damage regions, attached buffers, etc.) is double-buffered. More... | |
| static void | wl_surface_set_buffer_transform (struct wl_surface *wl_surface, int32_t transform) |
| This request sets an optional transformation on how the compositor interprets the contents of the buffer attached to the surface. More... | |
| static void | wl_surface_set_buffer_scale (struct wl_surface *wl_surface, int32_t scale) |
| This request sets an optional scaling factor on how the compositor interprets the contents of the buffer attached to the window. More... | |
| static void | wl_surface_damage_buffer (struct wl_surface *wl_surface, int32_t x, int32_t y, int32_t width, int32_t height) |
| This request is used to describe the regions where the pending buffer is different from the current surface contents, and where the surface therefore needs to be repainted. More... | |
A surface is a rectangular area that is displayed on the screen.
It has a location, size and pixel contents.
The size of a surface (and relative positions on it) is described in surface-local coordinates, which may differ from the buffer coordinates of the pixel content, in case a buffer_transform or a buffer_scale is used.
A surface without a "role" is fairly useless: a compositor does not know where, when or how to present it. The role is the purpose of a wl_surface. Examples of roles are a cursor for a pointer (as set by wl_pointer.set_cursor), a drag icon (wl_data_device.start_drag), a sub-surface (wl_subcompositor.get_subsurface), and a window as defined by a shell protocol (e.g. wl_shell.get_shell_surface).
A surface can have only one role at a time. Initially a wl_surface does not have a role. Once a wl_surface is given a role, it is set permanently for the whole lifetime of the wl_surface object. Giving the current role again is allowed, unless explicitly forbidden by the relevant interface specification.
Surface roles are given by requests in other interfaces such as wl_pointer.set_cursor. The request should explicitly mention that this request gives a role to a wl_surface. Often, this request also creates a new protocol object that represents the role and adds additional functionality to wl_surface.
Destroying the role object does not remove the role from the wl_surface, but it may stop the wl_surface from "playing the role". For instance, if a wl_subsurface object is destroyed, the wl_surface it was created for will be unmapped and forget its position and z-order. It is allowed to create a wl_subsurface for the same wl_surface again, but it is not allowed to use the wl_surface as a cursor (cursor is a different role than sub-surface, and role switching is not allowed).
| #define WL_SURFACE_ATTACH_SINCE_VERSION 1 |
| #define WL_SURFACE_COMMIT_SINCE_VERSION 1 |
| #define WL_SURFACE_DAMAGE_BUFFER_SINCE_VERSION 4 |
| #define WL_SURFACE_DAMAGE_SINCE_VERSION 1 |
| #define WL_SURFACE_DESTROY_SINCE_VERSION 1 |
| #define WL_SURFACE_ENTER_SINCE_VERSION 1 |
| #define WL_SURFACE_FRAME_SINCE_VERSION 1 |
| #define WL_SURFACE_LEAVE_SINCE_VERSION 1 |
| #define WL_SURFACE_SET_BUFFER_SCALE_SINCE_VERSION 3 |
| #define WL_SURFACE_SET_BUFFER_TRANSFORM_SINCE_VERSION 2 |
| #define WL_SURFACE_SET_INPUT_REGION_SINCE_VERSION 1 |
| #define WL_SURFACE_SET_OPAQUE_REGION_SINCE_VERSION 1 |
| enum wl_surface_error |
|
inlinestatic |
|
inlinestatic |
Set a buffer as the content of this surface.
The new size of the surface is calculated based on the buffer size transformed by the inverse buffer_transform and the inverse buffer_scale. This means that the supplied buffer must be an integer multiple of the buffer_scale.
The x and y arguments specify the location of the new pending buffer's upper left corner, relative to the current buffer's upper left corner, in surface-local coordinates. In other words, the x and y, combined with the new surface size define in which directions the surface's size changes.
Surface contents are double-buffered state, see wl_surface.commit.
The initial surface contents are void; there is no content. wl_surface.attach assigns the given wl_buffer as the pending wl_buffer. wl_surface.commit makes the pending wl_buffer the new surface contents, and the size of the surface becomes the size calculated from the wl_buffer, as described above. After commit, there is no pending buffer until the next attach.
Committing a pending wl_buffer allows the compositor to read the pixels in the wl_buffer. The compositor may access the pixels at any time after the wl_surface.commit request. When the compositor will not access the pixels anymore, it will send the wl_buffer.release event. Only after receiving wl_buffer.release, the client may reuse the wl_buffer. A wl_buffer that has been attached and then replaced by another attach instead of committed will not receive a release event, and is not used by the compositor.
Destroying the wl_buffer after wl_buffer.release does not change the surface contents. However, if the client destroys the wl_buffer before receiving the wl_buffer.release event, the surface contents become undefined immediately.
If wl_surface.attach is sent with a NULL wl_buffer, the following wl_surface.commit will remove the surface content.
|
inlinestatic |
Surface state (input, opaque, and damage regions, attached buffers, etc.) is double-buffered.
Protocol requests modify the pending state, as opposed to the current state in use by the compositor. A commit request atomically applies all pending state, replacing the current state. After commit, the new pending state is as documented for each related request.
On commit, a pending wl_buffer is applied first, and all other state second. This means that all coordinates in double-buffered state are relative to the new wl_buffer coming into use, except for wl_surface.attach itself. If there is no pending wl_buffer, the coordinates are relative to the current surface contents.
All requests that need a commit to become effective are documented to affect double-buffered state.
Other interfaces may add further double-buffered surface state.
|
inlinestatic |
This request is used to describe the regions where the pending buffer is different from the current surface contents, and where the surface therefore needs to be repainted.
The compositor ignores the parts of the damage that fall outside of the surface.
Damage is double-buffered state, see wl_surface.commit.
The damage rectangle is specified in surface-local coordinates, where x and y specify the upper left corner of the damage rectangle.
The initial value for pending damage is empty: no damage. wl_surface.damage adds pending damage: the new pending damage is the union of old pending damage and the given rectangle.
wl_surface.commit assigns pending damage as the current damage, and clears pending damage. The server will clear the current damage as it repaints the surface.
Alternatively, damage can be posted with wl_surface.damage_buffer which uses buffer coordinates instead of surface coordinates, and is probably the preferred and intuitive way of doing this.
|
inlinestatic |
This request is used to describe the regions where the pending buffer is different from the current surface contents, and where the surface therefore needs to be repainted.
The compositor ignores the parts of the damage that fall outside of the surface.
Damage is double-buffered state, see wl_surface.commit.
The damage rectangle is specified in buffer coordinates, where x and y specify the upper left corner of the damage rectangle.
The initial value for pending damage is empty: no damage. wl_surface.damage_buffer adds pending damage: the new pending damage is the union of old pending damage and the given rectangle.
wl_surface.commit assigns pending damage as the current damage, and clears pending damage. The server will clear the current damage as it repaints the surface.
This request differs from wl_surface.damage in only one way - it takes damage in buffer coordinates instead of surface-local coordinates. While this generally is more intuitive than surface coordinates, it is especially desirable when using wp_viewport or when a drawing library (like EGL) is unaware of buffer scale and buffer transform.
Note: Because buffer transformation changes and damage requests may be interleaved in the protocol stream, it is impossible to determine the actual mapping between surface and buffer damage until wl_surface.commit time. Therefore, compositors wishing to take both kinds of damage into account will have to accumulate damage from the two requests separately and only transform from one to the other after receiving the wl_surface.commit.
|
inlinestatic |
Deletes the surface and invalidates its object ID.
|
static |
Request a notification when it is a good time to start drawing a new frame, by creating a frame callback.
This is useful for throttling redrawing operations, and driving animations.
When a client is animating on a wl_surface, it can use the 'frame' request to get notified when it is a good time to draw and commit the next frame of animation. If the client commits an update earlier than that, it is likely that some updates will not make it to the display, and the client is wasting resources by drawing too often.
The frame request will take effect on the next wl_surface.commit. The notification will only be posted for one frame unless requested again. For a wl_surface, the notifications are posted in the order the frame requests were committed.
The server must send the notifications so that a client will not send excessive updates, while still allowing the highest possible update rate for clients that wait for the reply before drawing again. The server should give some time for the client to draw and commit after sending the frame callback events to let it hit the next output refresh.
A server should avoid signaling the frame callbacks if the surface is not visible in any way, e.g. the surface is off-screen, or completely obscured by other opaque surfaces.
The object returned by this request will be destroyed by the compositor after the callback is fired and as such the client must not attempt to use it after that point.
The callback_data passed in the callback is the current time, in milliseconds, with an undefined base.
|
inlinestatic |
|
inlinestatic |
This request sets an optional scaling factor on how the compositor interprets the contents of the buffer attached to the window.
Buffer scale is double-buffered state, see wl_surface.commit.
A newly created surface has its buffer scale set to 1.
wl_surface.set_buffer_scale changes the pending buffer scale. wl_surface.commit copies the pending buffer scale to the current one. Otherwise, the pending and current values are never changed.
The purpose of this request is to allow clients to supply higher resolution buffer data for use on high resolution outputs. It is intended that you pick the same buffer scale as the scale of the output that the surface is displayed on. This means the compositor can avoid scaling when rendering the surface on that output.
Note that if the scale is larger than 1, then you have to attach a buffer that is larger (by a factor of scale in each dimension) than the desired surface size.
If scale is not positive the invalid_scale protocol error is raised.
|
inlinestatic |
This request sets an optional transformation on how the compositor interprets the contents of the buffer attached to the surface.
The accepted values for the transform parameter are the values for wl_output.transform.
Buffer transform is double-buffered state, see wl_surface.commit.
A newly created surface has its buffer transformation set to normal.
wl_surface.set_buffer_transform changes the pending buffer transformation. wl_surface.commit copies the pending buffer transformation to the current one. Otherwise, the pending and current values are never changed.
The purpose of this request is to allow clients to render content according to the output transform, thus permitting the compositor to use certain optimizations even if the display is rotated. Using hardware overlays and scanning out a client buffer for fullscreen surfaces are examples of such optimizations. Those optimizations are highly dependent on the compositor implementation, so the use of this request should be considered on a case-by-case basis.
Note that if the transform value includes 90 or 270 degree rotation, the width of the buffer will become the surface height and the height of the buffer will become the surface width.
If transform is not one of the values from the wl_output.transform enum the invalid_transform protocol error is raised.
|
inlinestatic |
This request sets the region of the surface that can receive pointer and touch events.
Input events happening outside of this region will try the next surface in the server surface stack. The compositor ignores the parts of the input region that fall outside of the surface.
The input region is specified in surface-local coordinates.
Input region is double-buffered state, see wl_surface.commit.
wl_surface.set_input_region changes the pending input region. wl_surface.commit copies the pending region to the current region. Otherwise the pending and current regions are never changed, except cursor and icon surfaces are special cases, see wl_pointer.set_cursor and wl_data_device.start_drag.
The initial value for an input region is infinite. That means the whole surface will accept input. Setting the pending input region has copy semantics, and the wl_region object can be destroyed immediately. A NULL wl_region causes the input region to be set to infinite.
|
inlinestatic |
This request sets the region of the surface that contains opaque content.
The opaque region is an optimization hint for the compositor that lets it optimize the redrawing of content behind opaque regions. Setting an opaque region is not required for correct behaviour, but marking transparent content as opaque will result in repaint artifacts.
The opaque region is specified in surface-local coordinates.
The compositor ignores the parts of the opaque region that fall outside of the surface.
Opaque region is double-buffered state, see wl_surface.commit.
wl_surface.set_opaque_region changes the pending opaque region. wl_surface.commit copies the pending region to the current region. Otherwise, the pending and current regions are never changed.
The initial value for an opaque region is empty. Setting the pending opaque region has copy semantics, and the wl_region object can be destroyed immediately. A NULL wl_region causes the pending opaque region to be set to empty.
|
inlinestatic |


THE DEVELOPMENT OF THE ART OF ARNOLD SHORE
Roger Dedman
Dissertation for the degree of Doctor of Philosophy in the Department of Fine Arts,
University of Melbourne.
198.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.


{% from "../button/macro.njk" import dasButton %} Menu Find an apprenticeship Benefits How to become... How to become an apprentice - step by step... What is an apprenticeship? Find an apprenticeship Application Interview Your apprenticeship Assessment and qualification Real stories Interests My interests - find your perfect apprenticeship Agriculture, environment and animal care Business and administration Care services Catering and hospitality Construction Creative and design Digital Education and childcare Engineering and manufacturing Hair and beauty Health and science Legal, finance and accounting Protective services Sales, marketing and procurement Transport and logistics Who are you? What journey is right for you? Apprentices Upskillers/reskillers Teachers, parents and careers advisors Employers


Magic Monday: Escape from €50 with this week's Top 5 travel deals
by Pól Ó ConghaileEvery week, #MagicMonday brings you our Travel Editor's pick of the week's best travel deals
You might hate Monday, but you'll love our weekly pick of Ireland's top travel offers...
€50: Rooms at the 4-star Bridge House
Please log in or register with Independent.ie for free access to this article.
New to Independent.ie? Create an account
The Bridge House Hotel in Tullamore is celebrating 50 years in business, and a Black Friday offer has rooms from just €50. The catches? Well, the room-only rates are only available midweek (Sun-Thurs) on select dates to March 2020 - though there was lots of availability when we checked. Plus, you can add dinner and B&B for two for a further €50. Call<PHONE_NUMBER> or book online at bridgehousehoteltullamore.ie.
€30 off Ryanair flights
Ryanair has a 10-day 'Cyber Week' sale on the go for Black Friday, and today's offer includes €30 off return flights from April-September 2020. The sale seats must be booked by 23:59hrs tonight on ryanair.com. Other deals include 5pc flight credits for every stay booked with its accommodation wing, Ryanair Rooms.
€131pp: A city break in Prague
ClickAndGo.com has some great city break packages in January and February, particularly if you can travel midweek. Flights plus three nights at the 3-star Charles Hotel start from €131pp from February 9 with this deal, for instance - or upgrade to a 4-star from €172pp. As with any dynamic packages, make sure you're happy with the hotel's location before booking. 01 539-7777; clickandgo.com.
€589pp: All-inclusive in Tenerife
TUI has some strong all-inclusive winter sun offers at the moment, including a week at the 4-star Abora Interclub Atlantic, San Augustin in Gran Canaria from €589pp (departing Jan 9), and a 3-star week in Tenerife from €529pp (departing Jan 31). Call 1850 45 35 45 or visit tuiholidays.ie to book.
€1,099pp: Five-star fun in Thailand
Tropical Sky has savings of up to €250pp on seven-night stays at the five-star Pavilions Phuket. Book before November 30 for stays on select dates up to October 3. Rates from €1,099pp are based on two sharing and include flights from Dublin, transfers, and B&B accommodation. 01 664-9999; tropicalsky.ie.
NB: All travel deals subject to availability/change.


Thinking Style and Learning
02/03/2015
My Thinking Style
According to the Gregorc thinking style, I'm prety equally an Abstract Random and Abstract Sequential learner.
According to the Gregorc thinking style, I'm prety equally an Abstract Random and Abstract Sequential learner.


The Connections Design Team is crafting new design specifications for Connections. You can preview the new visual styles by installing the application, from the IBM Connections Cloud App Catalog, which leverages the Connections Customizer technology. There is not an App Catalog for IBM Connections on premises at this time.
Customizer is available on IBM Connections Cloud for tenants of the North America and Europe data centers. Before using Customizer your organization must first register for the service by sending an email with some simple information. Refer to section 3 of the IBM Connections Customizer documentation for more details.
Because this is a Preview, it is recommended that you enable the application for a sub-set of users.
This release is a preview and has limitations, which include:
We periodically release updates to fix defects and add styling to more applications and pages.
Find Visual Update 1 for IBM Connections in the App Catalog. Get the app and configure it.
You can install the application and enable it for no users or a sub-set of users. This way you control who will see the new visual updates.
To enable for no users or a sub-set of users, customize the extension that was installed when you enabled the app.
Enable for no users by adding a fake email address inside "user-email":
"payload": { "match": { "user-email": [<EMAIL_ADDRESS>] }, "include-files":[ "periscope.js" ], "include-repo": { "name":"periscope" } },
Enable for a sub-set of users by adding email addresses inside "user-email":
"payload": { "match": { "user-email": [<EMAIL_ADDRESS><EMAIL_ADDRESS>] }, "include-files":[ "periscope.js" ], "include-repo": { "name":"periscope" } },
Use caution before disabling a customized application. If you disable the application, your customizations will be lost. Save the customized json to another location before disabling the application.
To disable the application:
If you have previously enabled for a sub-set of users, edit the json again and remove the "match" and "user-email" matches in the payload section.
"payload": { "include-files":[ "periscope.js" ], "include-repo": { "name":"periscope" } },
Question: Why don't I see any visual updates after I enable Visual Update 1?
Answer: Check the following things:
Question: Which customizations appear or win if an Organization extension with company updates and the Visual Update 1 for IBM Connections application are enabled? Put another way, what is the sequence or order of changes when enabling Apps and extensions.
Answer: Which customizations appear or win is based on the order in which extensions get injected into the page by Connections Customizer. Customizer makes a request to the App Registry and it returns a list of extensions by name, in alphabetical order. The changes are applied in alphabetical order, overriding changes made earlier in the alphabet.
The App Registry includes the Visual Update 1 for IBM Connections application. A company adds an extension to the App Registry, to override styles, and it is called "Xtended Company Theme". The Visual Update 1 for IBM Connections application is loaded and applied first. Next the "Xtended Company Theme" gets loaded with its CSS and/or JS overriding any of the Visual Update 1 for IBM Connections changes.
The Visual Update 1 for IBM Connections is supported only for implementations where the application is installed and configured directly from the IBM Connections App Catalog and in which all of the following criteria are met: (1) Only the Verse Theme (Default) is enabled (2) No additional customizations are configured. Implementations added manually through an organization extension, combined with additional customizations, and/or contained code which was modified from its original state will not receive support considerations.
Due to the preview nature of the application, PMRs will not be accepted and resolved by IBM. Questions and support requests, however, can be posted directly on the support forum located here. IBM will not assist with making modifications to the open source code provided for this application nor modifications created to add additional customizations in lieu of the Visual Update 1 for IBM Connections.
While the application is in preview, bi-directional language support will not be included. Visual updates will apply only to applications stated in official communications and will not extend to custom widgets added to Connections. IBM plans to regularly add new Connections applications to the visual update and will share communications accordingly.
Ask questions and view answers tagged with 'cnx-custom-theme' on dW Answers.


StreamOne Icons
All icons prefixed by
s1-icon-
play
play-circle
pause
volume-mute
volume-low
volume-mid
volume-high
fullscreen-enter
fullscreen-exit
square
spinner
subtitles
captions
chapters
share
cog
circle
circle-outline
circle-inner-circle
hd
cancel
replay
playlist-previous
playlist-next
related-previous
related-next
airplay
airplay-active
chromecast
chromecast-active
facebook
gplus
linkedin
twitter
tumblr
pinterest
whatsapp
audio-description
resize-tl
resize-tr
resize-bl
resize-br
share-thin
rewind-5
rewind-10
rewind-30
article
related
logo-s1
headphones
annotation
info


Creating a template, or modifying an existing template will require an understanding of HTML, CSS and basic templating using Mustache. Blot will be very familiar if you’ve worked with templates on other platforms.
To modify an existing template, create a new template on the design page and specify the template you wish to clone from. This will copy of the existing template that you can edit.
{{=[[ ]]=}}
When you’re getting started I recommend cloning a template and looking through its source to familiarize yourself with how templates on Blot work.
| The tag… | is replaced with… |
|---|---|
{{name}} |
your name |
{{handle}} |
your blog's username |
{{title}} |
your blog's title |
{{avatar}} |
the URL to your blog's avatar |
{{roundAvatar}} |
true if you've indicated your avatar is round, false if not |
{{cacheID}} |
a timestamp representing the last time your blog's template was changed |
{{hideDates}} |
true if you've chosen to hide the dates on your blog, false if not |
{{blogURL}} |
the URL to your blog's homepage |
{{feedURL}} |
the URL to your blog's RSS feed |
{{cssURL}} |
the URL to your blog's CSS file |
{{scriptURL}} |
the URL to your blog's JS file |
{{sitemapURL}} |
the URL to your blog's sitemap |
[[={{ }}=]]
{{=[[ ]]=}}
Note that some of the variables, like {{{html}}}
have three handlebars rather than two. This is because Mustache escapes variables by default, and three handlebars overrides this.
| The tag… | is replaced with… |
|---|---|
{{id}} |
Number representing the entry's unique ID |
{{date}} |
Human readable publish date for the entry |
{{title}} |
Title of the entry |
{{{titleTag}}} |
HTML of the entry's title |
{{{html}}} |
HTML of the entry, including the title |
{{{body}}} |
HTML of the entry, excluding the title |
{{{teaser}}} |
HTML of the first few items in the entry, including title |
{{{teaserBody}}} |
HTML of the first few items in the entry, excluding title |
{{summary}} |
Text summary of the entry |
{{more}} |
Boolean indicating whether teaser differs from html . This is useful for determining whether or not to show 'read more' links. |
{{tags}} |
List of tags for the entry |
{{url}} |
Relative URL to the entry |
{{menu}} |
"true" if the entry is a page, "false" if not |
{{created}} |
Timestamp |
{{updated}} |
Timestamp |
[[={{ }}=]]
If you append the query string ?json=true to a URL on Blot, you can retrieve the view used to render its template. I’d suggest using a browser extension like JSONView to make more sense of it.
{{=[[ ]]=}}
You can specify custom entry metadata:
Author: Eric Blair
Use custom metadata in your template like this:
Posted by {{metadata.author}}
Metadata keys are case insensitive. I’d recommend using conditional blocks to prevent your layout breaking if you don’t consistently specify metadata:
{{#metadata.author}}
Posted by {{metadata.author}}
{{/metadata.author}}
{{^metadata.author}}
Posted by the editor
{{/metadata.author}}
[[={{ }}=]]
{{=[[ ]]=}}
You can embed a blog post in your template using this syntax:
{{> /pages/home.txt}}
Please note: the path to the entry is case-insensitive but must be absolute with your blog’s folder as the root directory.
[[={{ }}=]]
{{=[[ ]]=}}
Blot generates four sizes of thumbnails:
Blot will not increase the size of smaller images. The JSON added to each entry looks something like this:
{
...
thumbnail: {
small: {url: "...", width: 160, height: 103},
medium: {url: "...", width: 640, height: 411},
large: {url: "...", width: 1060, height: 681},
square: {url: "...", width: 160, height: 160 }
},
...
}
You can use them in your template like this:
{{#thumbnail.medium}}
<img src="{{url}}" width="{{width}}" height="{{height}}">
{{/thumbnail.medium}}
[[={{ }}=]]
You can control what search engines index by editing robots.txt. However, this view is overriden by Blot if you use a custom domain. Blot does this to prevent a duplicate content penalty.


{% extends 'layouts/layout-header.html' %} {% block pageTitle %} NHS login prototypes {% endblock %} {% block beforeContent %} {% endblock %} {% block content %}
The 'big' prototype, covering the end-to-end user journey in the old NHS.UK styles. The prototype journey can be started from the NHS App.
The front door of login. Covers the registration flow improvements (known as v2) in the new NHS.UK styles.
How a user manages their NHS login settings and delegates access.
Early work on a P5 journey. The prototype journey can be started from the NHS App or the Ask NHS App.
The interface that ID checkers user to verify a users identity.


power_settings_new
Power
volume_off
Mute
keyboard_arrow_up
CH
keyboard_arrow_down
add
VOL
remove
keyboard_arrow_up
NAV
keyboard_arrow_down
settings_input_hdmi
Source
adjust
OK


disabledValue()
By default are created the converters for all primitive types and its wrappers. If you need to create your own implement the Converter interface.


Portfolio
I’m making my way through this adventure with the help of friends and the uncountable resources you can find online. After attending a seven month full stack developer course in Coursera I’m starting the Free Code Camp training curriculum.
Calculator for Free Code Camp
User Stories requiered for this project are:
- - You can add, subtract, multiply and divide two numbers.
- - You can clear the input field with a clear button.
- - You can keep chaining mathematical operations together until you hit the equal button, and the calculator will tell me the correct output.
Additional features I added:
- - You can erase the last digit of a number.
- - If you click on an operator, and then on another operator, the last operator is the one and only that will be taken into account.
- - You can see the operations that will be performed on the top of the display.
- - You can change the sign of a number.
Wikipedia Viewer
Free Code Camp project. A wikipedia viewer that shows you the fisrt 10 links to wikipedia pages related to the search term.
Weather App
Free Code Camp project. The app shows the local weather automatically. You can also search for the weather in other location. Background colors change according to the time of day: dawn, day, dusk and night.
antropoloops MAP
antropoloops MAP is an application made with clojure for antropoloops, a musical project that creates sound collages with fragments of other songs, mixing melodies and rhythms from different times and territories. The aim of the application is to make the mix more transparent and give visibility to the sources that compose it. antropoloops MAP 1.0 is structured to receive data from a session in ableton live via OSC and display it live on screen.
Random Quote Machine
Free Code Camp project: a funny random quote machine. You can share the quotes you like on twitter.
Ada Lovelace Tribute Page
First project of the Free Code Camp curriculum: a tribute page about Ada Lovelace.
Images on the move
Little Javascript exercise with moving images that create different patterns.


WITNESS LIST
Government Organization
April 11, 2011 10:30 AM
Registering, but not testifying:
For:
Skaggs, Jason Executive Director Government and Public Affairs (Texas and
Southwestern Cattle Raisers Association), Austin, TX
Terry, Seth Associate Legislative Director (Texas Farm Bureau), Georgetown, TX
On:
Isom, Rex ED State Soil and Water Conservation Board (TX Soil and Water Conservation
Board), Temple, TX
Kirkle, Sarah Policy Analyst (Sunset Advisory Commission), Austin, TX
FOR:
Brown, Bryan CEO (Retama Park), San Antonio, TX
ON:
Hooper, David Executive Director (Texas Thoroughbred Association), Austin, TX
Shubeck, Drew President and G.M. (Lone Star Park), Keller, TX
Trout, Chuck Executive Director (Texas Racing Commission), Austin, TX
Registering, but not testifying:
On:
Ogle, Steven Staff Attorney/ Project Manager (Sunset Advisory Commission), Austin, TX
AGAINST:
Benavides, Gilbert Director of TAH (Texas Association of HUBs), Austin, TX
Craig, Rodney (Summus Industry), Houston, TX
ON:
Levine, Ken Director (Sunset Commission), Austin, TX
Pigot, Ron Lawyer (Comptroller), Austin, TX
Robinson, Karen Executive Director (Texas Department of Information Resources),
Austin, TX
Teleki, Katherine Policy Analyst (Sunset Advisory Commission), Austin, TX
Zarate, Manuel Chairman (HBMG, Inc.), Austin, TX
Registering, but not testifying:
Against:
Basu, Madhu IT Services (Self), Round Rock, TX
Carter, Richard IT Services (Self), Austin, TX
Goyal, Mohit IT Services (Loblolly Consulting), Austin, TX
Ricks, Mike SALES (TEK Systems), Austin, TX
Tarrant, Dewayne Government Relations and Sales (Genesis Networks Enterprises, LLC),
Austin, TX
Thomas, Rachel Sales (TEK Systems), Austin, TX
1


The core concept of interface and implementation separation is built into Java itself in that it has interfaces and classes. Many toolkits have been developed along the lines of an API / implementation separation. One such toolkit is the SAX API and the multiple XML parsers that implement it. Developers are quite happy using Apache's Xerces via the SAX API and understand that SAX represents the interface and Xerces an implementation. We notice that a lot of developers are happy to use interface/impl separated tools, but not to make them. We will try to justify in this document why we think people making applications should define interface/impl boundaries early in the design cycle.
The main reason we do it is because:
- it forces you to decouple different modules/components/objects
- if specified correctly allows you to easily change the implementation of the interface/contract in the future
- makes it possible for a user to read documentation about the interface without having the implementation details clutter up their perception
- increases the possibility of reuse in a larger application
If you are building objects with the aim of reuse then [3] is important but most people don't build for reuse (and most XP advocates say you should just plan to use not reuse) and thus [1] and [2] are more important. If you feel like documenting that and expanding this then feel free to.
Let us hope this is not necessary:
package helloworld; public interface HelloWorld { void sayHello(String greeting); } package helloworld.impl.default; public class DefaultHelloWorld implements HelloWorld { void sayHello(String greeting) { System.out.println("HelloWorld Greeting: " + greeting); } } package helloworld.impl.remote; public class RemoteHelloWorld implements HelloWorld { private RemoteMessager mRemoteMessager; public RemoteHelloWorld(RemoteMessager rm) { RemoteMessager = rm; } void sayHello(String greeting) { rm.sendMessage("HelloWorld Greeting: " + greeting); } }
We are referring to this pattern as interface/impl separation. Wiley's Patterns in Java book refers to it simply as 'Interface', but we feel that the word interface is overloaded enough in English and computing.
It might be true to say that this is 'API/implementation separation', but this too could be confusing as the aforementioned SAX is not quite a pure set of interfaces. It has a static factory that thunks in an implementation that all subsequent calls to the factory method will be forced to use. See Anti-Patterns below.
Better might be 'separation of implementation and the interface/contract' as that is quite correct, but a tad unwieldy.
Once a tool is split into interface and impl, it is possible for a container to hide the implementation. Most containers already use dynamic proxys (available in the JDK since 1.3), but we are talking about having the classes of the implementation hidden from classes using the interface.
To do this, it is easiest to mount the impl classes in a separate classloader to the classloader that the interface-using classes are mounted in. The interfaces being mounted in a classloader that is visible to both.
This is not a new proposition. Sun defined the servlet spec, and included rules about implementation hiding for hosted servlets. Essentially, instantiated servlets are only allowed to 'see' classes from the JDK, their own WAR file and those of the Servlet API itself. Tomcat correctly hides the implementation of the Servlet API from the hosted servlets.
To actually achieve this separation, many containers (including those from the Avalon project) require that the interface and impl are in separate jars. Or to put it another way, there is no point separating your interface and impl classes if you are going to distribute them in the same jar.
This is building on the previous section, and in short is referred to as K/CAPI/HC. Basically the kernel mounts hosted components and satisfies their need for a client API. However the kernel wants to hide its implementation from the hosted components.
An EJB container is another good example of this. EntityBean, SessionBean etc. is the client API. The hosted components are the beans, and the container has a kernel. It builds a complex tree of classloaders to separate its implementation, the client API, the JDK's runtime jar (that always being in the system or primordial classloader), and the hosted components.
The central message of this is that if you have interface/impl separated your tool, and are doing tricky things with more classloaders in the implementation, please make sure you do not assume that the parent classloader of any classloader is the system classloader. If your reusable tool has been taken by another team and at some non root place in a classloader tree, then the tools will fail if you have made such assumptions.
SAX, mentioned in multiple contexts in this document, is also an example of where the design can go wrong. The Factory is static (that in itself is an anti-pattern to IoC). Despite giving the appearance of having the ability to generate a parser based on the implementation's class name, only the first caller of that method will register a parser for the whole environment to use.
Given that the SAX API is now in the JDK, the environment we allude to above is the whole JVM. This is a problem because in a very complex application with differing concurrent needs for implementation of parsers, not all can be met if the SAX API is used for making parsers.


Spoilers: Billy and Paul are official in Corrie as Kel's abuse is revealed
Billy Mayhew (Daniel Brocklebank) and Paul Foreman (Peter Ash) have quite the history in Coronation Street, and it appears as if that spark between them is still very much there, as in the coming episodes, the pair rekindle their romance — just prior to Bernie and Gemma Winter (Jane Hazelgrove and Dolly-Rose Campbell) learning the truth about sex abuser Kel (Joe Alessi) is revealed.
Bernie (Jane Hazelgrove) prepares for her first day on the job as cleaner at the church hall, and she informs to Paul that Billy is the one who gave her a job — and Paul’s left confused as a result.
With this playing over in his mind, Paul later quizzes the vicar about why he helped his mum out, and Billy reveals that he just wanted to help because he loves him.
Paul’s taken aback by what Billy’s said. However, he later takes it upon himself to whip up a romantic meal for both him and Billy, and — when Billy returns home — Paul informs him he very much wants him in his life.
Advertisement Advertisement
However, in spite of their happiness, the second half of the week proves difficult for Paul as the truth about what Kel did to him comes to light in shocking fashion, as Bernie and Gemma (Dolly-Rose Campbell) realise that Kel was responsible for a string of burglaries which have taken place on the cobbles.
After breaking into his place, they discovery old pictures of Kel with Paul — as well as with other children. Afterwards, they bring the photos back home, and Paul’s devastated. He proceeds to open up about the fact that Kel sexually abused him — leaving both Bernie and Gemma shocked.
One to watch: Monday 18th November at 7:30pm on ITV.


- m_rnd - Variable in class controllers.sampleMCTS.SingleMCTSPlayer
-
Random generator.
- m_rnd - Static variable in class controllers.sampleMCTS.SingleTreeNode
-
- m_root - Variable in class controllers.sampleMCTS.SingleMCTSPlayer
-
Root of the tree.
- mag() - Method in class tools.Vector2d
-
Gets the magnitude of the vector.
- main(String[]) - Static method in class core.competition.AgentExecutor
-
- main(String[]) - Static method in class Test
-
- MappingContent - Class in core.content
-
Created with IntelliJ IDEA.
- MappingContent() - Constructor for class core.content.MappingContent
-
Default constructor.
- MappingContent(String) - Constructor for class core.content.MappingContent
-
Constructor that extracts the contents from a String line
- MarioAvatar - Class in ontology.avatar.oriented
-
Created with IntelliJ IDEA.
- MarioAvatar() - Constructor for class ontology.avatar.oriented.MarioAvatar
-
- MarioAvatar(Vector2d, Dimension, SpriteContent) - Constructor for class ontology.avatar.oriented.MarioAvatar
-
- mass - Variable in class core.VGDLSprite
-
Mass of this sprite (for Continuous physics).
- max() - Method in class tools.StatSummary
-
- MAX_SPRITES - Variable in class core.game.Game
-
Maximum number of sprites in a game.
- MAX_TIMESTEPS - Static variable in class core.competition.CompetitionParameters
-
Max time a game can run
- mctsSearch(ElapsedCpuTimer) - Method in class controllers.sampleMCTS.SingleTreeNode
-
- mean() - Method in class tools.StatSummary
-
- min() - Method in class tools.StatSummary
-
- minAmmo - Variable in class ontology.avatar.FlakAvatar
-
- Missile - Class in ontology.sprites.missile
-
Created with IntelliJ IDEA.
- Missile() - Constructor for class ontology.sprites.missile.Missile
-
- Missile(Vector2d, Dimension, SpriteContent) - Constructor for class ontology.sprites.missile.Missile
-
- MissileAvatar - Class in ontology.avatar.oriented
-
Created with IntelliJ IDEA.
- MissileAvatar() - Constructor for class ontology.avatar.oriented.MissileAvatar
-
- MissileAvatar(Vector2d, Dimension, SpriteContent) - Constructor for class ontology.avatar.oriented.MissileAvatar
-
- modifyResource(int, int) - Method in class core.VGDLSprite
-
Modifies the amount of resource by a given quantity.
- mostVisitedAction() - Method in class controllers.sampleMCTS.SingleTreeNode
-
- movesToward(VGDLSprite) - Method in class ontology.sprites.npc.AlternateChaser
-
- movesToward(VGDLSprite) - Method in class ontology.sprites.npc.Chaser
-
- MovingAvatar - Class in ontology.avatar
-
Created with IntelliJ IDEA.
- MovingAvatar() - Constructor for class ontology.avatar.MovingAvatar
-
- MovingAvatar(Vector2d, Dimension, SpriteContent) - Constructor for class ontology.avatar.MovingAvatar
-
- mul(double) - Method in class tools.Vector2d
-
Multiplies this vector by a factor.
- MultiSpriteCounter - Class in core.termination
-
Created with IntelliJ IDEA.
- MultiSpriteCounter() - Constructor for class core.termination.MultiSpriteCounter
-
- MultiSpriteCounter(TerminationContent) - Constructor for class core.termination.MultiSpriteCounter
-


无限执行
反向动画
停止
bounce
bounce-in-b
bounce-in-l
bounce-in-t
bounce-in-r
bounce-out-b
bounce-out-l
bounce-out-t
bounce-out-r
wobble
wobble-t
wobble-b
fade-in
fade-in-t
fade-in-b
fade-in-l
fade-in-r
fade-out
fade-out-t
fade-out-b
fade-out-l
fade-out-r
rotate-in
rotate-in-rb
rotate-in-rt
rotate-in-lb
rotate-in-lt
rotate-out
rotate-out-rb
rotate-out-rt
rotate-out-lb
rotate-out-lt
flip-in-x
flip-in-y
flip-out-x
flip-out-y
light-speed-in
light-speed-out
shake-time
flash
rubber-band
rubber-band-fast
swing
shake
pulse-shrink
pulse


maybe we need to allow the user to specify the required confirmations for each transaction. using default value so it doesnt have to be changed if it is acceptable. that would allow the user to specify larger confirmations for larger amounts. or we can automatically scale the required confirmations based on the amounts being swapped
probably there can be some algorithm that balances a coins hashrate and economic value of the swap to generate the required confirmations
@jl777c MM2 already has the API to set the required confirmations per coin during runtime (not persistent) - https://github.com/artemii235/developer-docs/blob/mm/docs/basic-docs/atomicdex/atomicdex-api.md#set_required_confirmations. But adding the USD-volume heuristics is also possible, maybe something simple at the start like if volume > 1000 USD confirmations = confirmations + 1.


Percent Full for Month Ending , or Most Recently Available Month
21st Century Average Volume: acre feet
Zoom and pan the map to move around in it. Click a point to view the water levels for a particular reservoir. Hover over the line graphs to see the levels for a particular month.
One acre foot is the amount of water it takes to cover one acre in one foot of water, or about 325,851 gallons.
Much of the American West is in a prolonged drought. Notice that for many reservoirs, particularly those in California, the seeming inexorable decline in stored water levels over the past several years. Then notice as many California reservoirs tick up after the heavy rains in December 2014. A number of reservoirs also exhibit wild oscillations in water level, presumably due to scheduled releases.


Dashboard
List events
Settings
Create event
Signout
Edit event id:
Event organizer:
Event name:
Event location:
Event description:
dsaasd
Event images:
Event date:
Event seats:
Delete event
Save


Click the dropdown to learn more about the company.
Bill Gates dropped out of Harvard in 1975 to start Microsoft.
He ran the company which targeted smaller companies to take out competitors in a very aggressive way.
Saw what Netscape was doing with the World Wide Web and he shifted Microsoft’s mission to take them down following the release of Navigator.
They approached Netscape to make an offer to buy Netscape for $1 million.
On December 7 1995 Internet Explorer was announced.
September 1997 the browser war was over and Microsoft came out on top.
Jim Clark was the main investor originally, he worked at Silicon Graphics but moved to Netscape to help build Mosaic.
Their goal was to build and spread the web, ultimately building a product to beat Microsoft.
When Microsoft approached them with an offer to buy Netscape for $1 Million, they turned it down.
Their new browser Navigator was released and challenged Microsoft, causing them to respond by shifting all focus on taking down Netscape.
Eventually they surpassed 1 million downloads.
They had an IPO and the stock boomed, it fell hard when Microsoft went after them and eventually tanked.
They realized their run was over when AOL approached them to buy them.
He was hired by Netscape to ensure they weren't consumed by Microsoft.
Moved to sue Microsoft for trying to buy Netscape and copy their work and stop distributors from releasing their product if they didn't sell.
Anti trust lawsuit in 1998 against them for their monopoly where they were found guilty and ordered to break their company. An appeal allowed them to
stay as a company but Bill Gates decided to resign as CEO after this decision.


About AtomScipt
AtomScript was especially designed to make programming easier. It uses syntax that is familiar and new at the same time. The project was started by Leandro Yabut (Founder of ZeroSeven Interactive) and is being developed by the AtomScript Team of ZeroSeven Interactive. The team's vision is to see that beginner programmers will be able to create computer programs and share it with the world with ease.
The AtomScript Team
This team works hard to bring you what you know as AtomScript. Each member of the team is appreciated and has an essential role to this project.
- Leandro Yabut - Team Leader, Programmer, Project Manager
- Jace Murphy - Team Leader, Programmer
- Mathias Schoen - Programmer, Web Master
Download
Download AtomScript now and start creating your own computer programs! It's easy to get started!
Download it!
Web
Integrate AtomScript into your website to give it some amazing new features! It's easy!
Try it!
ZeroSeven
Check out the team that made this possible! Thank you so much for supporting us!
Check us out!


{% extends "layout.html" %} {% block page_title %} Blank page {% endblock %} {% block content %} {% block phase_banner %} {% include "includes/phase_banner_alpha.html" %} {% endblock %} Home Companies House Forms Strike off a company from the register (DS01) How are you authorising this application? You've chosen to authorise this application on behalf of David Arthur Templeton. Please pick the statement below which best matches your situation: Which statement below best matches your situation? I am the director The director is deceased and I am acting on behalf of them To apply to close this company we will need to know your details. We'll also contact you through the email address used with this account. Your full name I have power of attorney to act on behalf of the director To apply to close this company we will need to know your details. We'll also contact you through the email address used with this account. Your full name {% endblock %}
You've chosen to authorise this application on behalf of David Arthur Templeton.
To apply to close this company we will need to know your details. We'll also contact you through the email address used with this account.


TCP socket that implements the Titanium.IOStream
interface.
Most socket operations are asynchronous. When you create a socket, you can define
callback funtions to receive the results of API calls, as well as to handle incoming
data.
For example, for a client-side socket, you define
connected and
error callback functions.
To connect to a remote host, call the socket's
connect method. If the socket connects
successfully, your connected
callback is invoked, and you can send and receive data
on the socket. If the socket connection fails, your error
callback is invoked.
After a socket is connected, you can access it like any other Titanium.IOStream
.
Note that the socket's read
and write
methods may block, so in most cases
you should use the asynchronous read, write
and pump methods provided by the Titanium.Stream
module,
rather than using the socket object's read
and write
methods directly.
A familiarity with the basics of BSD socket programming is a recommended before using
sockets with Titanium.
Use the Titanium.Network.Socket.createTCP
method to create a TCP socket.
Methods
Properties
| accepted |
[Callback<AcceptedCallbackArgs>]
|
|
Callback to be fired when a listener accepts a connection. |
| connected |
[Callback<ConnectedCallbackArgs>]
|
|
Callback to be fired when the socket enters the "connected" state. |
| error |
[Callback<ErrorCallbackArgs>]
|
|
Callback to be fired when the socket enters the ERROR state. |
| host |
[String]
|
|
The host to connect to or listen on. |
| listenQueueSize |
[Number]
|
|
Max number of pending incoming connections to be allowed when the socket is in the LISTENING state. |
| port |
[Number]
|
|
The port to connect to or listen on. |
| state |
[Number]
|
|
Current state of the socket. |
| timeout |
[Number]
|
|
Timeout, in milliseconds, for connect and all write operations. |
Code Examples
Simple Socket IO using Stream.pump
The following example uses the pump method from the Titanium.Stream
module to read data from a socket. The pump
method registers a callback that is
called repeatedly to process incoming data from the socket.
var socket = Ti.Network.Socket.createTCP({
host: 'blog.example.com', port: 80,
connected: function (e) {
Ti.API.info('Socket opened!');
Ti.Stream.pump(e.socket, readCallback, 1024, true);
Ti.Stream.write(socket, Ti.createBuffer({
value: 'GET http://blog.example.com/index.html HTTP/1.1\r\n\r\n'
}), writeCallback);
},
error: function (e) {
Ti.API.info('Error (' + e.errorCode + '): ' + e.error);
},
});
socket.connect();
function writeCallback(e) {
Ti.API.info('Successfully wrote to socket.');
}
function readCallback(e) {
if (e.bytesProcessed == -1)
{
// Error / EOF on socket. Do any cleanup here.
...
}
try {
if(e.buffer) {
var received = e.buffer.toString();
Ti.API.info('Received: ' + received);
} else {
Ti.API.error('Error: read callback called with no buffer!');
}
} catch (ex) {
Ti.API.error(ex);
}
}
Listening Socket Example
The following sample shows a trivial example of using a listening
socket. In this case, the application simply sends messages to itself,
using the loopback address.
// Hostname to listen on/connect to. Here we use the loopback
// address. iOS also supports Ti.Platform.address (the address of
// the WiFi interface).
// Android supports only the loopback address.
var hostname = '<IP_ADDRESS>';
var clientSocket = Ti.Network.Socket.createTCP({
host : hostname,
port : 40404,
connected : function(e) {
Ti.API.info('Client socket connected!');
Ti.Stream.pump(e.socket, pumpCallback, 1024, true);
e.socket.write(Ti.createBuffer({
value : 'A message from a connecting socket.'
}));
},
error : function(e) {
Ti.API.info('Error (' + e.errorCode + '): ' + e.error);
}
});
function writeCallback(e) {
Ti.API.info('Successfully wrote to socket.');
}
function pumpCallback(e) {
// Has the remote socket closed its end?
if (e.bytesProcessed < 0) {
Ti.API.info("Closing client socket.");
clientSocket.close();
return;
}
try {
if(e.buffer) {
var received = e.buffer.toString();
Ti.API.info('Received: ' + received);
} else {
Ti.API.error('Error: read callback called with no buffer!');
}
} catch (ex) {
Ti.API.error(ex);
}
}
//Create a socket and listen for incoming connections
var listenSocket = Ti.Network.Socket.createTCP({
host : hostname,
port : 40404,
accepted : function(e) {
// This where you would usually store the newly-connected socket, e.inbound
// so it can be used for read / write operations elsewhere in the app.
// In this case, we simply send a message then close the socket.
Ti.API.info("Listening socket <" + e.socket + "> accepted incoming connection <" + e.inbound + ">");
e.inbound.write(Ti.createBuffer({
value : 'You have been connected to a listening socket.\r\n'
}));
e.inbound.close();
// close the accepted socket
},
error : function(e) {
Ti.API.error("Socket <" + e.socket + "> encountered error when listening");
Ti.API.error(" error code <" + e.errorCode + ">");
Ti.API.error(" error description <" + e.error + ">");
}
});
// Starts the socket listening for connections, does not accept them
listenSocket.listen();
Ti.API.info("Listening now...");
// Tells socket to accept the next inbound connection. listenSocket.accepted gets
// called when a connection is accepted via accept()
Ti.API.info("Calling accept.");
listenSocket.accept({
timeout : 10000
});
// Call connect after a short timeout to ensure the listening socket is ready to go.
Ti.API.info("Setting timer to connect.");
setTimeout(function(e)
{
Ti.API.info("Calling connect on client socket.");
clientSocket.connect();
}, 500);
Methods
Tells a LISTENING socket to accept a connection request at the top of a listener's request queue when one becomes available.
Arguments
| options |
[AcceptDict]
|
Options to be set on next accepted socket. |
addEventListener (name, callback)
: void
Adds the specified callback as an event listener for the named event.
Arguments
| name |
[String]
|
Name of the event. |
| callback |
[Callback<Object>]
|
Callback function to invoke when the event is fired. |
applyProperties (props)
: void
Applies the properties to the proxy.
Arguments
| props |
[Dictionary]
|
A dictionary of properties to apply. |
Attempts to connect the socket to its host/port.
fireEvent (name, event)
: void
Fires a synthesized event to any registered listeners.
Arguments
| name |
[String]
|
Name of the event. |
| event |
[Dictionary]
|
A dictionary of keys and values to add to the Titanium.Event object sent to the listeners. |
Gets the value of the accepted property.
Gets the value of the error property.
Gets the value of the host property.
getListenQueueSize ()
: void
Gets the value of the port property.
Gets the value of the state property.
Gets the value of the timeout property.
Indicates whether this stream is readable.
Indicates whether this stream is writeable.
Attempts to start listening on the socket's host/port.
read (buffer, offset, length)
: void
Reads data from this stream into a buffer.
Arguments
| buffer |
[Titanium.Buffer]
|
Buffer to read stream data into. |
| offset |
[Number]
|
Offset into the buffer to start writing stream data.
If specified, length must also be specified. |
| length |
[Number]
|
Maximum number of bytes to read.
If specified, offset must also be specified. |
removeEventListener (name, callback)
: void
Removes the specified callback as an event listener for the named event.
Arguments
| name |
[String]
|
Name of the event. |
| callback |
[Callback<Object>]
|
Callback function to remove. Must be the same function passed to addEventListener. |
setAccepted (accepted)
: void
Sets the value of the accepted property.
setConnected (connected)
: void
Sets the value of the error property.
Sets the value of the host property.
Arguments
| host |
[String]
|
New value for the property. |
setListenQueueSize (listenQueueSize)
: void
Arguments
| listenQueueSize |
[Number]
|
New value for the property. |
Sets the value of the port property.
Arguments
| port |
[Number]
|
New value for the property. |
setTimeout (timeout)
: void
Sets the value of the timeout property.
Arguments
| timeout |
[Number]
|
New value for the property. |
write (buffer, offset, length)
: void
Writes data from a buffer to this stream.
Arguments
| buffer |
[Titanium.Buffer]
|
Buffer to write to this stream. |
| offset |
[Number]
|
Offset in the buffer of the first byte to write to the stream.
If specified, length must also be specified. |
| length |
[Number]
|
Maximum number of bytes to write to the stream.
If specified, offset must also be specified. |


Home-Manager
)NixOs
)https://serokell.io/blog/what-is-nix https://nixos.org/guides/nix-pills/why-you-should-give-it-a-try.html
Each packages will be stored in /nix/store
as a folder named
<package-hash>-<package-name>-<package-version>
NO DEPENDENCY HELL since each package will depend on other packages with their own hash.
If anything changes, the hash will be different, and therefore the package.
Each package will be then linked together and to the user path by symlinks managed by nix.
View of my current `/nix/store`.
Right now it holds 7000+ files/folders
.links
0041hqlbdn344ydjnza10mjm7rlkf4sg-clang-11-12-LLVMgold-path.patch.drv
008k6r0ybrvwqnvpg7c0893a637f5hcn-mptrees.r60929.tar.xz.drv
00ar9198921br3ypc8a69dv32rn66x0p-source.drv
00c1bhj9wmzs7xirc33hclqwd6inmb9h-perl-5.32.1.tar.gz.drv
00lfhlzh45srr48lpifc19x45hj1gvj2-thumbpdf.r48625.tar.xz.drv
00m3n0xbkvjr1q7f9iw0s0igglr2cngq-cctools-port-949.0.1.drv
0132jk5wc1i074hj8hsv2dq4qmjzvjgn-libthai-0.1.29
016c349l8pl2gix5h2qvriz0aiwlfcnw-libtool-2.4.6.drv
01k5097b5f9lzdw79s4g796ba37dbnkr-filelock-3.6.0.tar.gz.drv
01njla39mkimsnnh7xwxh2mxfmjikz0r-python3.9-pyopenssl-22.0.
...
If someone already built the package you need, nix will directly
download the binaries from its cache: https://cache.nix.org
Only if it doesn't exists there, the source code is actually downloaded and built on your machine.
Every aspect of your system is defined using the nix language.
Plus, this includes:
Moreover, it is easy to share, test & get support.
Due to its Immutability, the system state will be easy to reproduce or perform a rollback.
Same hashes, same system.
nix
just have to rebuild what is missing and properly link
everything back together.
You just switch to a new system.
It's possible to achive this on other systems/package managers, but it's usually quite tedious to manage.
Eg. virtualenv
, docker
, jhbuild
…
With nix
it's very easy, see first benefit
Nix-shell
)Discussed a little bit more later
From the Nix Wiki:
It however currently falls short when working with dynamic composition at runtime or replacing low level libraries, due to the need to rebuild dependencies.
Everything is immutable so you have to pass through nix if you want to change something on the fly. or nix-shell / env
Hard to get into, you have to learn something new entirely
Where nix looks for packages.
You can have several channels from several sources.
Default channel also splits into stable and unstable.
Very similar to git remote.
Useful to declare project dependencies that will not be permanently installed in your system.
Very much like direnv
, but for software.
Used by projects like the cats
library or 47deg's site.
shell.nix
in the root of your project
containing everything required by it.nix-shell
let
nixpkgs = builtins.fetchTarball "channel:nixos-22.05";
pkgs = import nixpkgs { config = { }; overlays = [ ]; };
in
pkgs.stdenv.mkDerivation {
name = "47-deg-site-dev";
buildInputs = [
(pkgs.jekyll.override { ruby = pkgs.ruby_3_1; })
(pkgs.bundler.override { ruby = pkgs.ruby_3_1; })
pkgs.ruby_3_1
pkgs.git
pkgs.graphicsmagick
];
}
Online you can find templates to leverage the power of nix-shell
.
For instance, we can also define CI/CD pipelines in the same way!
This concept holds for home-manager
as well.
TLDR; managing your home with nix
It includes dot-files as well as user scoped packages
Created by benkio.


-
at
-
Gets the tab at a given position within the group
Parameters:
| Name |
Type |
Description |
position |
number
|
The position of the tab to get |
- Source:
- api-extensions.js, line 206
Returns:
The tab at the given position, if any
-
Type
-
BrowserTab
-
collapse
-
Collapses the tab group
- Source:
- api-extensions.js, line 240
-
expand
-
Expands the tab group
- Source:
- api-extensions.js, line 234
-
insertAfter
-
Inserts a tab into the group after another tab
Parameters:
| Name |
Type |
Description |
tab |
BrowserTab
|
The tab to insert |
child |
BrowserTab
|
The tab after which the specified tab should be inserted.
This tab is expected to be a child of the group. |
- Source:
- api-extensions.js, line 220
-
move
-
Moves a tab to a new position within the group
Parameters:
| Name |
Type |
Description |
tab |
BrowserTab
|
The tab to move |
to |
number
|
The new position to move the item to |
- Source:
- api-extensions.js, line 193
Returns:
The item which was moved, if any
-
Type
-
BrowserTab
-
move
-
Moves a tab to a new position within the group
Parameters:
| Name |
Type |
Description |
from |
number
|
The position of the tab to move |
to |
number
|
The new position to move the tab to |
- Source:
- api-extensions.js, line 193
Returns:
The tab which was moved, if any
-
Type
-
BrowserTab
-
ungroup
-
Dissolves the group by ungrouping all of its tabs
- Source:
- api-extensions.js, line 226


author: srikanth
* PhoneGap= HTML+CSS+JAVASCRIPT
* what i did?
*
* Observing the output is very easy but for that small out i did a lot..., just follow me.
* step 1: in the xml file i used CorodovaWebview----> by adding the lib we get cordovaWebView
* Step 2: in the Main activity i loaded the html page, but in order to load html page on the cordovaWebView for action sequences we did
* step 3: i copied ActivityPlugin.java from the framework sample, that is a standard java file for plug_in of corodova
* step 4: i copied PluginManagerTest.java from the framework sample, that is a standard java file for test plugger for the project, replace with your package name carefully
* create xml folder in res folder in designing area in that xml folder create a confing.xml file for loading as well as set up of envi,
* in the config.xml plz observer the
* in the config.xml plz observer the
* warning you don't forger the feature tag in the res/xml/confing.xml file...
* for ex: i want to make a camera app based on phonegap at that time
* finally place your all the webpages as well as supporting pages in the assert folder
*
* if you run this app it will shows u a login page plz give the username as" srikanth " and pswd as " sri "... no spaces no capital
*/


| Version | |
| Vendor | |
| Homepage | http://www.HARTING-RFID.com |
| Support |<EMAIL_ADDRESS>|
| LLRP Standard | https://www.gs1.org/standards/epc-rfid/llrp/latest |
| Version | |
| Vendor | |
| Homepage | http://www.HARTING-RFID.com |
| Support |<EMAIL_ADDRESS>|
| LLRP Standard | https://www.gs1.org/standards/epc-rfid/llrp/latest |


| Month | Demand | ME | Status | Action |
|---|---|---|---|---|
| 01/2019 | 250 | Unit | Approved | No action required |
| 02/2019 | 300 | Unit | Not Approved | |
| 03/2019 | 300 | Unit | Not Approved | |
| 04/2019 | 300 | Unit | Not Approved | |
| 05/2019 | 300 | Unit | Not Approved | |
| 06/2019 | 250 | Unit | Not Approved | |
| 07/2019 | 300 | Unit | Not Approved | |
| 08/2019 | 300 | Unit | Not Approved | |
| 09/2019 | 300 | Unit | Not Approved | |
| 10/2019 | 300 | Unit | Not Approved | |


I was trying to use Aspect Oriented based logging method entry, exit logs. A lot of examples I found on web were mostly tightly coupled with Spring, which had its own drawback of configuration through application context and XML files.
The below is implementation using only AspectJ in which weaving happens at compile time.
The Annotation Class.
@Documented
@Retention ( RetentionPolicy . RUNTIME )
@Target ({ ElementType . METHOD , ElementType . TYPE })
public @interface Loggable {
int TRACE = 0 ;
int DEBUG = 1 ;
int INFO = 2 ;
int WARN = 3 ;
int ERROR = 4 ;
int value () default Loggable . TRACE ;
boolean skipResult () default false ;
boolean skipArgs () default false ;
}
This is a simple annotation class which defines parameters like Log level at which logging should be enabled, controlling arguments and return values log messages for sensitive methods.
Maven Configuration
<dependencies>
<dependency>
<groupId> org.apache.logging.log4j</groupId>
<artifactId> log4j-api</artifactId>
<version> 2.3</version>
</dependency>
<dependency>
<groupId> org.apache.logging.log4j</groupId>
<artifactId> log4j-core</artifactId>
<version> 2.3</version>
</dependency>
<dependency>
<groupId> org.aspectj</groupId>
<artifactId> aspectjrt</artifactId>
<version> 1.8.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId> org.codehaus.mojo</groupId>
<artifactId> aspectj-maven-plugin</artifactId>
<version> 1.7</version>
<configuration>
<complianceLevel> 1.8</complianceLevel>
<showWeaveInfo> true</showWeaveInfo>
<source> 1.8</source>
<target> 1.8</target>
<verbose> true</verbose>
</configuration>
<executions>
<execution>
<id> weave-classes</id>
<phase> process-classes</phase>
<goals>
<goal> compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId> org.codehaus.mojo</groupId>
<artifactId> exec-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal> java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass> ninjabricks.logger.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
Sample Class
public class App {
@Loggable ( value = Loggable . INFO )
String method1 ( String s1 , String s2 ) {
return "Coding Gibberish" ;
}
public static void main ( String [] args ) {
App sample = new App ();
sample . method1 ( "Ninja" , "Bricks" );
}
}


Created for the COVID-19 Global Hackathon 1.0 by @shaunakg and @abinash3366. Background image credit to Christopher Rusev on Unsplash.