Anima
pen
curve
rectangle
oval
circle
select
select all
clear
delete
cut
copy
paste
undo
redo
save
restore
export
import
rasterize
Attributes
Operations
Line Attributes
Line Width:
Line Cap:
butt
round
square
Line Join:
bevel
round
miter
Miter Limit:
Close Path:
Color Attributes
Stroke
Fill
Both
Stroke Color
Hue:
Saturation:
Luminance:
Alpha:
Fill Color
Hue:
Saturation:
Luminance:
Alpha:
Color Stock
set stroke color
set fill color
Path Operations
Mode
transform
move controller
resize
rotate
connect paths
split a path
remove a point
divide a curve
smooth link
Action
reduce points
subdivide
smoothen
merge paths
bring front
bring back
close
Export Selected Pathes Only.
close
Preserve existing data.
Import
close
new
delete
front
back
run
visible
name
>>
>>
>>
>>
>>
>>
>>


What Da Gama told Mabasa: 'Boy, you cant play like that'
Cape Town - Highlands Park coach Owen da Gama has slammed Tshegofatso Mabasa's tackle on Lindokuhle Mbatha in the 1-0 defeat to Orlando Pirates on Tuesday.
Mabasa was extremely lucky to escape with a yellow card as Mbatha had to receive an injection at half-time but is still set for a lengthy spell on the sidelines.
Da Gama was seen in animated conversation with Mabasa after the game and the Lions of the North tactician has revealed exactly what he said to the Buccanneers striker.
"I told him, I said, 'Boy, you cant play like that. You can’t tackle people with two-footed tackles. You will end people's careers'," Da Gama told KickOff.
"He said, 'No he (Mbatha) jumped'. I said it doesn't matter if he didn't jump it would have broken his leg.
"That should have been a red card. Two-footed tackle. Mbatha had to get an injection at half-time. He never recovered from that. He is still in pain. I don't know if he will play again."
Highlands next turn their attention to a Telkom Knockout quarter-final clash with Maritzburg United on Friday night.
Kick-off is at 20:00.
- TeamTalk Media


I have replicated the test done here. My results after calibration:
- For measurements below 50W: error >34%
- For measurements 50W - 100W: error >5%
- For measurements 100W - 240 W: 2% < error < 5%
- For measurements above the 300W: error < 1% (more less)
The results in a graph:
I used this sketch that does all the calculations and you only need to copy and paste from the serial monitor into the spread sheet
Carlos
Re: emonTx accuracy test
Thank you, Carlos. I've added your results to the original article.
Re: emonTx accuracy test
Quite encouraged by this because my house background usage is around 500W.
Does anyone here ever get down to 50W or below?
P.
Re: emonTx accuracy test
Has anybody looked into the effect that polling has on accuracy?
It seems to me that if you only look at 20 cycles every 5 seconds or so you're going to miss a lot of stuff. I'm thinking of situations like a 3kw heater thermostat closing for 4 seconds just after an emonTx transmission. This will not register any power usage at all.
Re: emonTx accuracy test
This is something I already mentioned some time ago, but got no reaction. Everything like a flat iron, cooking plate, heater, etc. will pulse its power usage in similar time intervals as the measurements are taken. This can give absolutely erratic results, depending on the 'overlap' between measuring and power usage.
So a cooking plate with 2kw nominal power and 50% duty cycle can give a reading of anything between 0W and 2kW. If the duty cycle and measuring cycle are in synch, it can effectively show 0W or 2000W for longer time intervals.
Re: emonTx accuracy test
Yes, it does seem a bit pointless to go to the trouble of measuring voltage and correcting for phase error and then to ignore over 90% of the available information.
The problem is made worse by the transmission system because any lost data packets will have the effect of sampling even less often.
Re: emonTx accuracy test
Using ACK's for critical values like pulse counting, power consumption? RFM2Pi has already support for this.
Re: emonTx accuracy test
Agreed. I have to point out that the original concept was for a battery-powered monitor, and sleeping for 4.8 s out of 5 was critical for battery life. The general thinking, applications and usage has advanced, but the original concept has remained.
This is OK for local display of present consumption, you're probably thinking about accumulated energy.
What I'd like to know, based on Fluppie's comment about ACKs, is why the accumulation isn't done in the emonTx? I haven't thought this through, but if the emonTx sent the total accumulated data since the last transmission that was acknowledged, there's scope for continuous measurement with minimal risk of lost data, whether between samples, from missing packets, or whatever, and no problem with clogging the RF band or the network. (One immediate problem: what do you do if the data gets through but the ACK doesn't? - serial numbered packets and ACKs? This could get complicated! But if you sent a packet every minute or ten, you could put about as much protection on as you liked. You'd still need fast 'instantanous' values for display, but the display could maintain its own accumulator in between and synchronise with the full update).
Re: emonTx accuracy test
I'm with you on that one Robert, I'm already in the process of building the accumulation into my emonTx script. My approach is slightly different though. I'm going to have kW/h registers in the emonTx just like a normal meter. These values will then be transmitted at regular intervals. The display then only has to subtract the value from the start of the day to get daily use. It doesn't matter if packets are lost since each transmitted value will carry all the information you need.
The only problem I can see is power cuts so I'm considering saving the registers to EEPROM at regular intervals.
I fully understand about the original battery concept and see the reasoning but, as you say, things have move on.
Re: emonTx accuracy test
I like that approach, but like my suggestion it needs work to integrate into emoncms. Bear in mind the limited life of EEPROM. Each reading is too often, hourly would give you a life of about 10 years: ( "The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it.")
Re: emonTx accuracy test
I suppose ideally you'd only want to write to the EEPROM when the power goes off like a car ECU does. Mmm, I wonder if the power supply capacitors would hold up long enough to write to the EEPROM if you detected power failure via the a/c input - might be fun to try.
Sorry about hijacking your thread BTW cagabi.
Re: emonTx accuracy test
What about adding some RAM (doesn't wear like EEPROM) memory to the board, do calculations and storage over there, add a 0,5-1F supercap (like the Intel 320 SSD) to hold the RAM's values for a while in case of a power outage. Then emonTx has time to write RAM content to EEPROM or (micro)SD card?
Re: emonTx accuracy test
Quote: Each reading is too often, hourly would give you a life of about 10 years...
Supposed the 100.000 cycles EEPROM write cycles are meant per byte (the datasheet is not very explicit here, but this is the smallest unit that can be individually reprogrammed), then it would also be possible to write to a different location each time. Writing a long value takes 4 Bytes, 64 long values use up 256 Bytes. Writing every minute means ~24 writes per 'location' per day or less than 10000 per year. 100000 cycles would then last for more than ten years with 1 minute resolution.
Re: emonTx accuracy test
The other day i bought a Pulse sensor with the idea of comparing kWh calculated from the CT and the measured from the meter. Also i would be measuring 20, 40, 60 and 80 cycles and check if it makes any difference. Once it´s done i will put the link to the public dashboard.
Cheers,
carlos
Re: emonTx accuracy test
I wrote: "I wonder if the power supply capacitors would hold up long enough to write to the EEPROM if you detected power failure via the a/c input - might be fun to try."
I now have the kWh registers working in the emonTx in my system so I gave the above a try today - and it works a treat!
Here's the power fail timing...
This is using a cheap USB PSU. The top trace is the emonTx 3.3V supply and the middle trace is the 9V a/c input. As you can see the 3.3V holds up for about 2.5s and since it only takes 3.3ms to write a byte to EEPROM this is loads of time.
The bottom trace is a test output which is high during the EEPROM write process, which is triggered as soon as loss of a/c is detected. Here it is in more detail...
This is for 12 EEPROM byte writes for 3 32-bit registers for imported Wh, exported Wh and solar Wh. Since this snapshot I've also added a checksum.
Re: emonTx accuracy test
Martin, how do detect the loss of the AC? Do you have any code to share for this? Many thanks...
Re: emonTx accuracy test
Nothing clever Lemongrass, in my PLLsketch the variable cycleVsquared is a measure of the voltage at the end of each cycle. All I do is check to see if this variable is below a constant threshold at the end of a mains cycle and if it is then I declare loss of AC. This gives a response time of 20ms at the UK frequency of 50Hz.
Re: emonTx accuracy test
Yes, quite often on lelvel of 50w - during summer days my base load is 400-600w for three phases. One of the phase has constant 230w and other around 100-150w leaving third phase to 100w or less. This excellent study did not reveal if error margin is same for <50w or also for 1000..1050w. For normal use i think the chosen burden has too low value as the main fuses I have are 3 x 25A.


Synergy 1.2 released
-
Greg Hurrell
From the post I just made to wincent.org:
Quote: I'm very pleased to announce the immediate availability of Synergy version 1.2 for immediate download (912 Kb). This is a major update to the popular iTunes accessory, incorporating an overhaul of the button set system (button sets are now double-clickable packages in the Finder) as well as many, many bugfixes and enhancements.
August has been a tough month for piracy. Early this month someone mass-distributed their serial number and I've seen a 20-30% drop in the rate of licenses purchased, beginning on the day of the leak. When the app only costs 5 Euros I don't make a lot of money out of it, and a drop like that can make the difference between paying the bills and not... So if you haven't taken out a license yet but have been thinking of doing so, I hope you really like this release and that you will consider supporting further development by purchasing a license or making a donation.
And on an unrelated note: I will have limited access to email next week from Tuesday 31 August to Sunday 5 September, so please be patient if you send me an email and are awaiting a reply. I will get back to you, but perhaps not with the usual promptness. One thing you can do to be sure of getting a rapid answer is use the automated registration recovery system if you have lost your serial number and would like it resent to you, and if you are purchasing Synergy, make sure that your PayPal settings are up-to-date so that your registration information gets sent to your current email address. You might find answers for other queries on the forums.
Once again, I hope you all like this release. Enjoy!
Reply
This topic is now closed.


Pipelined Processor in Logisim
Assembly Programming
CPU Scheduling - implement multiprocessor OS simulator
Package Segmentation - implement application layer
TCP/UDP Socket - implement bank client & server
Under Construction...
Under Construction...


Blog Post 2: Learning Plan
Bootcamp
This post is to add to this learning plan post now that I’ve finished the foundation part as well as looking forward to the bootcamp and my updated learning plan for it.
My long-term goal still hasn’t really changed and for the foreseeable future after my time at EDA is still to work for not-for-profit Christian organization. I’m not too sure of where I want to work when I first graduate, but it is where I want to end up eventually.
Thinking back on my strengths, I think my wanting to understand has led me to a good foundation of back-end logic, most of what I find hard technically is finding the right syntax. As for limitations, I would say it’s my time management. It isn’t a problem when I manage it well, but almost all my stress behavior comes out when it’s not managed well, and I feel like I’m running out of time.
A non-technical skill that I can struggle with and want to develop in my time here at EDA, is voicing my ideas. I can find it hard to voice my idea if I feel like there’s even a slight chance it might cause some discourse. On the other side I can also come across too strong and over state my idea. I would love to learn how to balance this throughout bootcamp.
As I look forward to starting bootcamp, I’m honestly not too sure what to expect of the content and the facilitators. I know a little about some of the things we’ll be doing, such as some group work, and some lectures from the facilitators, I really don’t know what to expect to happen in a day at bootcamp. As for myself, not much has changed, since it is required to come in, it’ll make it easier to motivate myself to wake up on time in the morning. My other commitments really haven’t changed, but it may be new to learn to fit that around bootcamp.
Foundations
I am studying at Dev Academy because I have a long-term goal to becoming a senior web developer and using those skills to work not for profit Christian organizations in need to adapting in this digital age.
I see my facilitator as someone who wants to help me learn to the best of my ability. They are someone who does not mind me asking them for help but do have a lot of other people they are helping also.
Some of my strengths include really desiring to understanding how things work rather than just being able to use them. I hold myself to a high level of integrity, which helps when I am working with others, but can work against me as I tend to set too high a standard for myself. Another limitation is that I can get easily stressed out when I do not understand or feel like I do not have enough time.
During EDA I am committed to seek help in a timely manner, I can struggle with finding the balance between giving the work a good go vs asking for help, so I will be asking the facilitator for feedback as I ask for help.
To manage my workload, I will do all in power to work during normal working hours (9-5), more time can be spent on this, but I do also want to be mindful on keeping a good work/life balance. My plan is to try being in the Auckland office for work as much as it is possible for me so that I can work in community and to be mutually accountable for putting in the hours. Other things I need to manage my time around are my Church commitments, which are a group meeting Wednesday evening, and Sunday service in the morning. My Open Polytechnic papers which has a flexible time that I can work in around Dev Academy.


Sylvie and Bruno
by Lewis Carroll
Chapter 5: “A Beggar’s Palace”
Additional Information
- Year Published: 1889
- Language: English
- Country of Origin: England
- Source: Carroll, L. (1889). Sylvie and Bruno. London: Macmillan and Co.
-
Readability:
- Flesch–Kincaid Level: 6.0
- Word Count: 3,019
- Genre: Fantasy
- Keywords: 19th century literature, british literature, lewis carroll
- ✎ Cite This
Downloads
That I had said something, in the act of waking, I felt sure: the hoarse stifled cry was still ringing in my ears, even if the startled look of my fellow-traveler had not been evidence enough: but what could I possibly say by way of apology?
“I hope I didn’t frighten you?” I stammered out at last. “I have no idea what I said. I was dreaming.”
“You said ‘Uggug indeed!’” the young lady replied, with quivering lips that would curve themselves into a smile, in spite of all her efforts to look grave. “At least—you didn’t say it—you shouted it!”
“I’m very sorry,” was all I could say, feeling very penitent and helpless. “She has Sylvie’s eyes!” I thought to myself, half-doubting whether, even now, I were fairly awake. “And that sweet look of innocent wonder is all Sylvie’s too. But Sylvie hasn’t got that calm resolute mouth nor that far-away look of dreamy sadness, like one that has had some deep sorrow, very long ago—” And the thick-coming fancies almost prevented my hearing the lady’s next words.
“If you had had a ‘Shilling Dreadful’ in your hand,” she proceeded, “something about Ghosts or Dynamite or Midnight Murder—one could understand it: those things aren’t worth the shilling, unless they give one a Nightmare. But really—with only a medical treatise, you know—” and she glanced, with a pretty shrug of contempt, at the book over which I had fallen asleep.
Her friendliness, and utter unreserve, took me aback for a moment; yet there was no touch of forwardness, or boldness, about the child for child, almost, she seemed to be: I guessed her at scarcely over twenty—all was the innocent frankness of some angelic visitant, new to the ways of earth and the conventionalisms or, if you will, the barbarisms—of Society. “Even so,” I mused, “will Sylvie look and speak, in another ten years.”
“You don’t care for Ghosts, then,” I ventured to suggest, unless they are really terrifying?”
“Quite so,” the lady assented. “The regular Railway-Ghosts—I mean the Ghosts of ordinary Railway-literature—are very poor affairs. I feel inclined to say, with Alexander Selkirk, ‘Their tameness is shocking to me’! And they never do any Midnight Murders. They couldn’t ‘welter in gore,’ to save their lives!”
“’Weltering in gore’ is a very expressive phrase, certainly. Can it be done in any fluid, I wonder?”
“I think not,” the lady readily replied—quite as if she had thought it out, long ago. “It has to be something thick. For instance, you might welter in bread-sauce. That, being white, would be more suitable for a Ghost, supposing it wished to welter!”
“You have a real good terrifying Ghost in that book?” I hinted.
“How could you guess?” she exclaimed with the most engaging frankness, and placed the volume in my hands. I opened it eagerly, with a not unpleasant thrill like what a good ghost-story gives one) at the ‘uncanny’ coincidence of my having so unexpectedly divined the subject of her studies.
It was a book of Domestic Cookery, open at the article Bread Sauce.’
I returned the book, looking, I suppose, a little blank, as the lady laughed merrily at my discomfiture. “It’s far more exciting than some of the modern ghosts, I assure you! Now there was a Ghost last month—I don’t mean a real Ghost in in Supernature—but in a Magazine. It was a perfectly flavourless Ghost. It wouldn’t have frightened a mouse! It wasn’t a Ghost that one would even offer a chair to!”
“Three score years and ten, baldness, and spectacles, have their advantages after all!”, I said to myself. “Instead of a bashful youth and maiden, gasping out monosyllables at awful intervals, here we have an old man and a child, quite at their ease, talking as if they had known each other for years! Then you think,” I continued aloud, “that we ought sometimes to ask a Ghost to sit down? But have we any authority for it? In Shakespeare, for instance—there are plenty of ghosts there—does Shakespeare ever give the stage-direction ‘hands chair to Ghost’?”
The lady looked puzzled and thoughtful for a moment: then she almost clapped her hands. “Yes, yes, he does!” she cried. “He makes Hamlet say ‘Rest, rest, perturbed Spirit!”’
“And that, I suppose, means an easy-chair?”
“An American rocking-chair, I think—”
“Fayfield Junction, my Lady, change for Elveston!” the guard announced, flinging open the door of the carriage: and we soon found ourselves, with all our portable property around us, on the platform.
The accommodation, provided for passengers waiting at this Junction, was distinctly inadequate—a single wooden bench, apparently intended for three sitters only: and even this was already partially occupied by a very old man, in a smock frock, who sat, with rounded shoulders and drooping head, and with hands clasped on the top of his stick so as to make a sort of pillow for that wrinkled face with its look of patient weariness.
“Come, you be off!” the Station-master roughly accosted the poor old man. “You be off, and make way for your betters! This way, my Lady!” he added in a perfectly different tone. “If your Ladyship will take a seat, the train will be up in a few minutes.” The cringing servility of his manner was due, no doubt, to the address legible on the pile of luggage, which announced their owner to be “Lady Muriel Orme, passenger to Elveston, via Fayfield Junction.”
As I watched the old man slowly rise to his feet, and hobble a few paces down the platform, the lines came to my lips:-
“From sackcloth couch the Monk arose,
With toil his stiffen’d limbs he rear’d;
A hundred years had flung their snows
On his thin locks and floating beard.”
But the lady scarcely noticed the little incident. After one glance at the ‘banished man,’ who stood tremulously leaning on his stick, she turned to me. “This is not an American rocking-chair, by any means! Yet may I say,” slightly changing her place, so as to make room for me beside her, “may I say, in Hamlet’s words, ‘Rest, rest—’” she broke off with a silvery laugh.
“—perturbed Spirit!”’ I finished the sentence for her. “Yes, that describes a railway-traveler exactly! And here is an instance of it,” I added, as the tiny local train drew up alongside the platform, and the porters bustled about, opening carriage-doors—one of them helping the poor old man to hoist himself into a third-class carriage, while another of them obsequiously conducted the lady and myself into a first-class.
She paused, before following him, to watch the progress of the other passenger. “Poor old man!” she said. “How weak and ill he looks! It was a shame to let him be turned away like that. I’m very sorry—” At this moment it dawned on me that these words were not addressed to me, but that she was unconsciously thinking aloud. I moved away a few steps, and waited to follow her into the carriage, where I resumed the conversation.
“Shakespeare must have traveled by rail, if only in a dream: ‘perturbed Spirit’ is such a happy phrase.”
“’Perturbed’ referring, no doubt,” she rejoined, “to the sensational booklets peculiar to the Rail. If Steam has done nothing else, it has at least added a whole new Species to English Literature!”
“No doubt of it,” I echoed. “The true origin of all our medical books—and all our cookery-books—”
“No, no!” she broke in merrily. “I didn’t mean our Literature! We are quite abnormal. But the booklets—the little thrilling romances, where the Murder comes at page fifteen, and the Wedding at page forty —surely they are due to Steam?”
“And when we travel by Electricity if I may venture to develop your theory we shall have leaflets instead of booklets, and the Murder and the Wedding will come on the same page.”
“A development worthy of Darwin!”, the lady exclaimed enthusiastically. “Only you reverse his theory. Instead of developing a mouse into an elephant, you would develop an elephant into a mouse!” But here we plunged into a tunnel, and I leaned back and closed my eyes for a moment, trying to recall a few of the incidents of my recent dream.
“I thought I saw—” I murmured sleepily: and then the phrase insisted on conjugating itself, and ran into “you thought you saw—he thought he saw—” and then it suddenly went off into a song:—
”He thought he saw an Elephant,
That practised on a fife:
He looked again, and found it was
A letter from his wife.
‘At length I realise,’ he said,
“The bitterness of Life!’”
And what a wild being it was who sang these wild words! A Gardener he seemed to be yet surely a mad one, by the way he brandished his rake—madder, by the way he broke, ever and anon, into a frantic jig—maddest of all, by the shriek in which he brought out the last words of the stanza!
It was so far a description of himself that he had the feet of an Elephant: but the rest of him was skin and bone: and the wisps of loose straw, that bristled all about him, suggested that he had been originally stuffed with it, and that nearly all the stuffing had come out.
Sylvie and Bruno waited patiently till the end of the first verse. Then Sylvie advanced alone (Bruno having suddenly turned shy) and timidly introduced herself with the words “Please, I’m Sylvie!”
“And who’s that other thing?’, said the Gardener.
“What thing?” said Sylvie, looking round. “Oh, that’s Bruno. He’s my brother.”
“Was he your brother yesterday?” the Gardener anxiously enquired.
“Course I were!” cried Bruno, who had gradually crept nearer, and didn’t at all like being talked about without having his share in the conversation.
“Ah, well!” the Gardener said with a kind of groan. “Things change so, here. Whenever I look again, it’s sure to be something different! Yet I does my duty! I gets up wriggle-early at five—”
“If I was oo,” said Bruno, “I wouldn’t wriggle so early. It’s as bad as being a worm!” he added, in an undertone to Sylvie.
“But you shouldn’t be lazy in the morning, Bruno,” said Sylvie. “Remember, it’s the early bird that picks up the worm!”
“It may, if it likes!” Bruno said with a slight yawn. “I don’t like eating worms, one bit. I always stop in bed till the early bird has picked them up!”
“I wonder you’ve the face to tell me such fibs!” cried the Gardener.
To which Bruno wisely replied “Oo don’t want a face to tell fibs wiz—only a mouf.”
Sylvie discreetly changed the subject. “And did you plant all these flowers?” she said.
“What a lovely garden you’ve made! Do you know, I’d like to live here always!”
“In the winter-nights—” the Gardener was beginning.
“But I’d nearly forgotten what we came about!” Sylvie interrupted. “Would you please let us through into the road? There’s a poor old beggar just gone out—and he’s very hungry—and Bruno wants to give him his cake, you know!”
“It’s as much as my place is worth!’, the Gardener muttered, taking a key from his pocket, and beginning to unlock a door in the garden-wall.
“How much are it wurf? “Bruno innocently enquired.
But the Gardener only grinned. “That’s a secret!” he said. “Mind you come back quick!” he called after the children, as they passed out into the road. I had just time to follow them, before he shut the door again.
We hurried down the road, and very soon caught sight of the old Beggar, about a quarter of a mile ahead of us, and the children at once set off running to overtake him.
Lightly and swiftly they skimmed over the ground, and I could not in the least understand how it was I kept up with them so easily. But the unsolved problem did not worry me so much as at another time it might have done, there were so many other things to attend to.
 The poor little fellow was quite out of breath, and could only utter the one word “Cake!” not with the gloomy decision with which Her Excellency had so lately pronounced it, but with a sweet childish timidity, looking up into the old man’s face with eyes that loved ‘all things both great and small.’
The old man snatched it from him, and devoured it greedily, as some hungry wild beast might have done, but never a word of thanks did he give his little benefactor—only growled “More, more!” and glared at the half-frightened children.
“There is no more!”, Sylvie said with tears in her eyes. “I’d eaten mine. It was a shame to let you be turned away like that. I’m very sorry—”
I lost the rest of the sentence, for my mind had recurred, with a great shock of surprise, to Lady Muriel Orme, who had so lately uttered these very words of Sylvie’s—yes, and in Sylvie’s own voice, and with Sylvie’s gentle pleading eyes!
“Follow me!” were the next words I heard, as the old man waved his hand, with a dignified grace that ill suited his ragged dress, over a bush, that stood by the road side, which began instantly to sink into the earth. At another time I might have doubted the evidence of my eyes, or at least have felt some astonishment: but, in this strange scene, my whole being seemed absorbed in strong curiosity as to what would happen next.
When the bush had sunk quite out of our sight, marble steps were seen, leading downwards into darkness. The old man led the way, and we eagerly followed.
The staircase was so dark, at first, that I could only just see the forms of the children, as, hand-in-hand, they groped their way down after their guide: but it got lighter every moment, with a strange silvery brightness, that seemed to exist in the air, as there were no lamps visible; and, when at last we reached a level floor, the room, in which we found ourselves, was almost as light as day.
It was eight-sided, having in each angle a slender pillar, round which silken draperies were twined. The wall between the pillars was entirely covered, to the height of six or seven feet, with creepers, from which hung quantities of ripe fruit and of brilliant flowers, that almost hid the leaves. In another place, perchance, I might have wondered to see fruit and flowers growing together: here, my chief wonder was that neither fruit nor flowers were such as I had ever seen before. Higher up, each wall contained a circular window of coloured glass; and over all was an arched roof, that seemed to be spangled all over with jewels.
With hardly less wonder, I turned this way and that, trying to make out how in the world we had come in: for there was no door: and all the walls were thickly covered with the lovely creepers.
“We are safe here, my darlings!” said the old man, laying a hand on Sylvie’s shoulder, and bending down to kiss her. Sylvie drew back hastily, with an offended air: but in another moment, with a glad cry of “Why, it’s Father!”, she had run into his arms.
“Father! Father!” Bruno repeated: and, while the happy children were being hugged and kissed, I could but rub my eyes and say “Where, then, are the rags gone to?”; for the old man was now dressed in royal robes that glittered with jewels and gold embroidery, and wore a circlet of gold around his head.


BCLEventScheduler Class Reference
| Inherits from | NSObject |
|---|---|
| Declared in | BCLEventScheduler.h BCLEventScheduler.m |
Overview
Schedules events for later execution. Used, e.g., to delay beacon ‘leave’ and zone ‘enter’ actions.
Properties
backgroundTaskIdentifier
A background task identifier used to schedule events for execution in background mode.
@property (assign) UIBackgroundTaskIdentifier backgroundTaskIdentifier
Declared In
BCLEventScheduler.h
Methods
– scheduleEventForBeacon:afterDelay:onTime:
Schedule a beacon event for later.
- (void)scheduleEventForBeacon:(BCLBeacon *)beacon afterDelay:(NSTimeInterval)delay onTime:(void ( ^ ) ( BCLBeacon *beacon ))callback
Parameters
beacon |
A beacon for which the event occured |
|---|---|
delay |
Delay value in seconds |
callback |
On time callback block |
Declared In
BCLEventScheduler.h
– scheduleChangeZoneEventWithPreviousZone:newZone:afterDelay:onTime:
@biref Schedule a zone ‘enter’ event for later.
- (void)scheduleChangeZoneEventWithPreviousZone:(BCLZone *)previousZone newZone:(BCLZone *)newZone afterDelay:(NSTimeInterval)delay onTime:(void ( ^ ) ( BCLZone *previousZone , BCLZone *newZone ))callback
Parameters
previousZone |
A zone whose range has been left |
|---|---|
newZone |
A zone whose range has been entered |
delay |
Delay value in seconds |
callback |
On time callback block |
Declared In
BCLEventScheduler.h
– cancelForBeacon:
Cancel all events scheduled for a beacon
- (BOOL)cancelForBeacon:(BCLBeacon *)beacon
Parameters
beacon |
A beacon beacon whose events will be cancelled |
|---|
Return Value
YES if canelled.
Declared In
BCLEventScheduler.h
– cancelChangeZoneEvent
Cancel any scheduled ‘enter’ zone events
- (BOOL)cancelChangeZoneEvent
Return Value
YES is an event has been cancelled
Declared In
BCLEventScheduler.h
– isScheduledForBeacon:
Check if a beacon has any scheduled events
- (BOOL)isScheduledForBeacon:(BCLBeacon *)beacon
Parameters
beacon |
A beacon that will be checked for scheduled events |
|---|
Return Value
YES if any event is scheduled for a beacon
Declared In
BCLEventScheduler.h
– isChangeZoneEventScheduled
Check if there’s a scheduled ‘enter’ zone event
- (BOOL)isChangeZoneEventScheduled
Return Value
YES if there’s any scheduled ‘enter’ zone event
Declared In
BCLEventScheduler.h


{{ range $service := $team.Services }} {{ range $dashboard := $service.Dashboards }} {{ $service.Name }} {{ $dashboard.Name }} {{ end }} {{ end }}
Contribute at github.com/jkakar/dashi.


Data Sharing Administration Guidelines
When implementing and managing data sharing in your shop, be sure to abide by the following guidelines.
Consider Multiple Coupling Facilities
To reduce the risk of downtime, deploy multiple coupling facilities. If one coupling facility fails, you can always switch to another "backup" coupling facility.
A recommended implementation is to have one coupling facility to house the group buffer pools and a second coupling facility for the SCA and lock structures.
Implement Group Buffer Pool Duplexing
Duplex your group buffer pool structures to provide failover capability for buffering in your data sharing environment. With group buffer pool duplexing a secondary group buffer pool is waiting on standby to take over buffering activity if the primary group buffer pool fails.
To start group buffer pool duplexing, at least one DB2 member must be actively connected to the group buffer pool. When group buffer pool duplexing is started, all activity to the group buffer pools is quiesced until duplexing is established. This usually lasts only a few seconds.
CAUTION
Initiate group buffer pool duplexing during a period of low system activity to avoid resource unavailable conditions while duplexing is being established.
You must use CFRM policies to activate group buffer pool duplexing. There are two ways to start duplexing a group buffer pool:
Activate a new CFRM policy specifying DUPLEX(ENABLED) for the structure. If the group buffer pool is currently allocated, OS/390 can automatically initiate the process to establish duplexing as soon as you activate the policy. If the group buffer pool is not currently allocated, the duplexing process can be initiated when the group buffer pool is allocated. Activate a new CFRM policy specifying DUPLEX(ALLOWED) for the structure. If the group buffer pool is currently allocated, you must rebuild duplexing using the following command:
SETXCF START,REBUILD,DUPLEX,STRNAME=strname
If the group buffer pool is not currently allocated, you need to wait until it is allocated before using the SETXCF command to start the duplexing rebuild.
Take Action to Help Prevent Coupling Facility Failures
To limit down time due to coupling facility failure consider taking the following actions:
Configure multiple coupling facilities. Reserve space in an alternate coupling facility in case the lock and SCA structures must be rebuilt. Use dedicated coupling facilities so that the MVS image is not lost during processor failure. Use uninterruptible power supplies for all dedicated coupling facilities. Implement group buffer pool duplexing. Configure more than one Sysplex timer.
Consider Archiving Logs to Disk
Consider archiving the primary DB2 log files to DASD. Doing so can significantly speed up the amount of time it takes to recover.
Of course, you should favor writing the second archive copy to tape for disaster recovery purposes.
Avoid Confusing Names for Data Sharing Groups
Avoid names that IBM uses for its XCF groups by avoiding the letters A-I as the first character of the group name (unless the first three characters are "DSN"). Additionally, avoid using "SYS" as the first three characters, and do not use the string "UNDESIG" as your group name.
Avoid Using DSNDB07 As a Work File Database Name
Each data sharing group member must have a work file database defined for it. Although one of the members of the data sharing group can use DSNDB07, this is not advisable. Instead, create a descriptive name, for each work file database, for example the string "WK" concatenated to the member name.
CAUTION
You cannot specify a name that begins with DSNDB unless the name is DSNDB07.
| Consider CASTOUT(NO) to Speed Member Shutdown |
As of DB2 V7, you can achieve a faster shutdown of DB2 data sharing members by specifying CASTOUT(NO) when stopping a member. By specifying CASTOUT(NO) when you STOP a member for maintenance, the window of unavailability decreases because it take less time to shutdown.
Be aware, though, that when you shutdown multiple members of a data sharing group with CASTOUT(NO), some changed data might remain in the group buffer pools after the members have been stopped. If you need to ensure consistent data on disk (for example, to make a copy), then specify CASTOUT(YES) instead of CASTOUT(NO).
You can check on the status of castout by displaying the DB2 member. The status will appear as QC on the display output if the member quiesced with some castout processing not completed.
Allocate Buffer Pools for Data Sharing
Specify separate buffer pools for shared data and non-shared data. Doing so makes it easier to manage and tune the group buffer pools in the coupling facility.
Keep an Eye on the EDM Pool
After implementing data sharing applications be sure to closely monitor EDM Pool storage. Because data sharing applications should be bound using RELEASE(DEALLOCATE), storage used by the EDM Pool tends to increase when data sharing is in use.
Avoid Row-Level Locking
Row-level locking will increase data sharing overhead. The resources required to acquire, maintain, and release a row lock are about the same as required for a page lock. Use LOCKSIZE(ROW) sparingly, if at all, in a data sharing environment.
Specify Lock Structure Size with Care
The size of the coupling facility's locking structure directly affects the number of false contentions (collisions) that occur. If the hash table is too small, the propensity for false collisions increases. Any contention, including false contention, requires additional asynchronous processing which negatively impacts performance.
|


The Homeland Enterprise Architecture Repository is based off of the Enterprise Architecture Information Repository (EAIR) for the Department of Homeland Security. This project was launche in 20XX with the goal to LOREM IPSUM SIT DOLOR SIT AMET.


|
PotatoC
|
Go to the source code of this file.
Data Structures | |
| struct | quad_ |
| A quad, typically an instruction in the resulting program type The type of the instruction cmp The type of the comparaison if any (if statement) id The id of the instruction, starting at 0. res The resulting symbol if any left The left symbol of the operation if any right The right symbol of the operation if any dest The destination quad if any (goto) More... | |
| struct | quad_list_ |
| A double chained list of quad q The current quad previous The previous quad in the list next The next quad in the list. More... | |
Typedefs | |
| typedef struct quad_ | quad_ |
| typedef struct quad_ * | quad |
| typedef struct quad_list_ | quad_list_ |
| typedef struct quad_list_ * | quad_list |
Enumerations | |
| enum | OpType { QUAD_OP_PLUS, QUAD_OP_MINUS, QUAD_OP_MULT, QUAD_OP_DIVI, QUAD_OP_MODULO, QUAD_UOP_ASSIGN, QUAD_UOP_MINUS, QUAD_UOP_PLUS, QUAD_GOTO_IF, QUAD_GOTO_END, QUAD_GOTO, QUAD_PRINTI } |
| The type that a quad can have. More... | |
| enum | RelOp { QUAD_RELOP_EQ, QUAD_RELOP_NEQ, QUAD_RELOP_GT, QUAD_RELOP_GTE, QUAD_RELOP_LT, QUAD_RELOP_LTE } |
| The type of comparaison in an if statement. More... | |
Functions | |
| quad | alloc_quad () |
| Allocate in memory a new quad. More... | |
| quad | quad_gen (enum OpType type, symbol res, symbol left, symbol right) |
| Generate a binary operation quad (3 adresses) More... | |
| quad | quad_unary_gen (enum OpType type, symbol res, symbol right) |
| Generate a new quad for an unary operation (2 adresses) More... | |
| quad | quad_ifgoto_gen (symbol, enum RelOp, symbol) |
| Generate a quad goto. Two symbols and a comparaison are given. The destination quad is not yet assigned, it has to be completed in the main program. More... | |
| quad | quad_goto_gen () |
| Generate a direct goto quad. No checks, goto directly to the quad. The destination quad is not yet assigned, it has to be completed in the main program. More... | |
| quad | quad_printi_gen (symbol) |
| Create a printi instruction for a given symbol. More... | |
| quad_list | quad_add (quad_list *head, quad q) |
| Add a quad in the given list. More... | |
| quad_list | quad_list_alloc () |
| Allocate in memory a new quad list element. More... | |
| void | quad_list_complete (quad_list, quad) |
| Completed all empty goto quads of the list with the given quad. More... | |
| quad_list | quad_list_concat (quad_list, quad_list) |
| quad_list | quad_list_append (quad_list *, quad) |
| Append an element to the given list. More... | |
| int | quad_list_clean_gotos (quad_list) |
| Detect unlinked quads and link them to the end (exit) Usefull when the last instruction is an if statement to link the else to the end. More... | |
| quad_list | quad_list_find (quad_list, int) |
| Find the specified quad in the specified list. More... | |
| void | quad_print (quad) |
| Print a given quad. More... | |
| void | quad_list_print (quad_list) |
| Print all the elements of the given quad_list. More... | |
| void | quad_list_free (quad_list, bool) |
| Free the memory used by the given list. More... | |
| struct quad_ |
A quad, typically an instruction in the resulting program type The type of the instruction cmp The type of the comparaison if any (if statement) id The id of the instruction, starting at 0. res The resulting symbol if any left The left symbol of the operation if any right The right symbol of the operation if any dest The destination quad if any (goto)
| Data Fields | ||
|---|---|---|
| enum RelOp | cmp | |
| struct quad_ * | dest | |
| int | id | |
| symbol | left | |
| symbol | res | |
| symbol | right | |
| enum OpType | type |
| struct quad_list_ |
A double chained list of quad q The current quad previous The previous quad in the list next The next quad in the list.
| Data Fields | ||
|---|---|---|
| struct quad_list_ * | next | |
| struct quad_list_ * | previous | |
| struct quad_ * | q |
| typedef struct quad_list_ * quad_list |
| typedef struct quad_list_ quad_list_ |
| enum OpType |
| enum RelOp |
| quad alloc_quad | ( | ) |
Allocate in memory a new quad.
Add a quad in the given list.
| The | list of quad |
| The | quad to add |
Generate a binary operation quad (3 adresses)
| type | The type of the quad |
| res | The output symbol |
| left | The left operand symbol |
| right | The right operand symbol |
| quad quad_goto_gen | ( | ) |
Generate a direct goto quad. No checks, goto directly to the quad. The destination quad is not yet assigned, it has to be completed in the main program.
Generate a quad goto. Two symbols and a comparaison are given. The destination quad is not yet assigned, it has to be completed in the main program.
| The | left symbol |
| The | comparaison type |
| The | right symbol |
| quad_list quad_list_alloc | ( | ) |
Allocate in memory a new quad list element.
Append an element to the given list.
| int quad_list_clean_gotos | ( | quad_list | ) |
Detect unlinked quads and link them to the end (exit) Usefull when the last instruction is an if statement to link the else to the end.
| The | quad list |
Completed all empty goto quads of the list with the given quad.
| The | quad list |
| The | quad used to complete |
Create a new list with the concatenation of two given list Will create a new list in memory.
| First | list |
| Second | list |
Find the specified quad in the specified list.
| The | list |
| The | quad id |
| void quad_list_free | ( | quad_list | , |
| bool | |||
| ) |
Free the memory used by the given list.
| The | list of quad |
| If | true, will free quads inside the list |
| void quad_list_print | ( | quad_list | ) |
Print all the elements of the given quad_list.
| The | list |
| void quad_print | ( | quad | ) |
Print a given quad.
| The | quad |
Create a printi instruction for a given symbol.
| The | symbol to print |


AnyLike()
AnyLike
Anything is AnyLike
Anything
alias of typelike.core.any.AnyLike
typelike.core.any.AnyLike
ListLike()
ListLike
Something that is ListLike is something that can be coerced into a 1-dimensional list.
NumberLike()
NumberLike
Something that is NumberLike is something that is singular and numerical
infer_type(anything[, itemize])
infer_type
Infer the type of anything
API Reference
typelike.core.AnyLike


Here are some dog friendly spots
These are the places that Bubs really enjoyed
The majority of places that are on the list are
dog parks where he could run free and go crazy. However
there are some special places such as Sprinkle's cupcakes
where we would get him doggie cupcakes for his birthday.


DUNS registration is a crucial part of starting to do business with the federal government. A DUNS number is neccessary to have in order to participate in any one of the nearly $500 billion in contracts that the government awards each year on average. With this product, we will handle the registration proccess and you will have to wait around 30 days to recieve your DUNS number.
Registering for a SAM.gov account through the government account managment system, Login.gov, is a requirement with most federal contracts. Inproperly filing the SAM registration can result in account termination. This is why it is important to have a proffessional review your SAM registration so that you can avoid the negative consequences of mistakes. We will review the SAM registration of existing clients for free.
No CostWe understand the qualifications for small business set aside certifications and can apply for your business if it is qualified. These include 8a, HUBZone, Women-Owned Small Business, and Service-Disabled Veteran-Owned. Please remember to ask about this in our free consultation.
No Cost


PREV
UP
NEXT
XSCHEM IS
- A Free OSS small project, follows the UNIX KISS philosophy. ~30K SLOC.
- A Digital / Analog / Mixed mode circuit schematic editor.
- A hierarchical design tool: wrap (parametric) sub-blocks into symbols and use them multiple times.
- Fast: Performance is important. Editing a schematic with 100K instances MUST not be a problem.
- Xschem knows the connectivity. Netlist build is embedded in the core.
- Verilog, VHDL, Spice, tEDAx netlist backends. Adding another backend is not difficult.
- Intensive and time consuming computations all done in pure C.
- Tcl-tk used for GUI and scripting language. Direct Xlib drawing.
- Netlist extraction must be instant (<500ms) on small to medium designs.
XSCHEM IS NOT
- A space-ship. Does not depend on too many libs.
- A Gtk or Qt project, with APIs changing constantly.
- Proprietary or using undocumented file formats.
- A layout tool.
- A circuit simulator.
- A native windows software (yet).
- Super easy to use: there is a learning curve.
- A memory hog: XSCHEM with a medium design loaded requires 54M virtual memory, 24M resident set.
Perfectly useable on an Intel-Atom netbook with 1GB RAM. This is my performance test machine.
- A C++, C99, C11 project: all code is ANSI-C C89, works on old Solaris, Irix machines, compiles on 32bit, 64 bit and on armhf.


I am experienced in teaching English to foreign and local students.
Teaching English and Mathematics to Primary children ages from 7 to 12.
GPA: 3.85
Apart from being a web developer, I enjoy most of my time being outdoors. In the winter, I am an avid skiier and novice ice climber. During the warmer months here in Colorado, I enjoy mountain biking, free climbing, and kayaking.
When forced indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technolgy advancements in the front-end web development world.


There are two types of lists in HTML: ordered and unordered. The corresponding tags are ol (ordered list) and ul (unordered list). Both of them can have li elements (list item) inside them. List items can contain simple texts or any complex tag structure inside them, like a whole other list. This is how you can create an inner level list.


Hello friend. This extension is calculating the playlist which you are watching.
But youtube is not loading all playlist videos, so you should scroll down to calculate all videos.
And if for first running you should clear your cache. Maybe Ctrl+F5 will clear your cache quickly.
Than this extension will work correctly.
if you want to support my code click the github button.
I can help you for create extensions and you can send me an email for consulting your software projects.


--- layout: post title: "Accountability and free speech" description: "A most likely naive suggestion." date: 2021-02-09 7:53 UTC tags: [Miscellaneous] image: "/content/binary/cph-metro-map.png" image_alt: "Snapshot of Copenhagen Metro route generated by Google Maps." --- {% include JB/setup %}
{{ page.description }}
A few years ago, my mother (born 1940) went to Paris on vacation with her older sister. She was a little concerned if she'd be able to navigate the Métro, so she asked me to print out all sorts of maps in advance. I wasn't keen on another encounter with my nemesis, the printer, so I instead showed her how she could use Google Maps to get on-demand routes. Google Maps now include timetables and line information for many metropolitan subway lines around the world. I've successfully used it to find my way around London, Paris, New York, Tokyo, Sydney, and Melbourne.
It even works in my backwater home-town:
It's rapidly turning into indispensable digital infrastructure, and that's beginning to trouble me.
You can still get paper maps of the various rapid transit systems around the world, but for how long?
If you're old enough, you may remember phone books. In the days of land lines and analogue phones, you'd look up a number and then dial it. As the internet became increasingly ubiquitous, phone directories went online as well. Paper phone books were seen as waste, and ultimately disappeared from everyday life.
You can think of paper phone books as a piece of infrastructure that's now gone. I don't miss them, but it's worth reflecting on what impact their disappearing has. Today, if I need to find a phone number, Google is often the place I go. The physical infrastructure is gone, replaced by a digital infrastructure.
Google, in particular, now provides important infrastructure for modern society. Not only web search, but also maps, video sharing, translation, emails, and much more.
Other companies offer other services that verge on being infrastructure. Facebook is more than just updates to friends and families. Many organisations, including schools and universities, coordinate activities via Facebook, and the political discourse increasingly happens there and on Twitter.
We've come to rely on these 'free' services to a degree that resembles our reliance on physical infrastructure like the power grid, running water, roads, telephones, etcetera.
Robert A. Heinlein coined the phrase There ain't no such thing as a free lunch (TANSTAAFL) in his excellent book The Moon is a Harsh Mistress. Indeed, the digital infrastructure isn't free.
Recent events have magnified some of the cost we're paying. In January, Facebook and Twitter suspended the then-president of the United States from the platforms. I've little sympathy for Donald Trump, who strikes me as an uncouth narcissist, but since I'm a Danish citizen living in Denmark, I don't think that I ought to have much of an opinion about American politics.
I do think, on the other hand, that the suspension sets an uncomfortable precedent.
Should we let a handful of tech billionaires control essential infrastructure? This time, the victim was someone half the world was glad to see go, but who's next? Might these companies suspend the accounts of politicians who work against them?
Never in the history of the world has decision power over so many people been so concentrated. I'll remind my readers that Facebook, Twitter, Google, etcetera are in worldwide use. The decisions of a handful of majority shareholders can now affect billions of people.
If you're suspended from one of these platforms, you may lose your ability to participate in school activities, or from finding your way through a foreign city, or from taking part of the democratic discussion.
In this article, I mainly want to focus on the free-speech issue related mostly to Facebook and Twitter. These companies make money from ads. The longer you stay on the platform, the more ads they can show you, and they've discovered that nothing pulls you in like anger. These incentives are incredibly counter-productive for society.
Users are implicitly encouraged to create or spread anger, yet few are held accountable. One reason is that you can easily create new accounts without disclosing your real-world identity. This makes it difficult to hold users accountable for their utterances.
Instead of clear rules, users are suspended for inexplicable and arbitrary reasons. It seems that these are mostly the verdicts of algorithms, but as we've seen in the case of Donald Trump, it can also be the result of an undemocratic, but political decision.
Everyone can lose their opportunities for self-expression for arbitrary reasons. This is a free-speech issue.
Yes, free speech.
I'm well aware that Facebook and Twitter are private companies, and no-one has any right to an account on those platforms. That's why I started this essay by discussing how these services are turning into infrastructure.
More than a century ago, the telephone was new technology operated by private companies. I know the Danish history best, but it serves well as an example. KTAS, one of the world's first telephone companies, was a private company. Via mergers and acquisitions, it still is, but as it grew and became the backbone of the country's electronic communications network, the government introduced legislation. For decades, it and its sister companies were regional monopolies.
The government allowed the monopoly in exchange for various obligations. Even when the monopoly ended in 1996, the original monopoly companies inherited these legal obligations. For instance, every Danish citizen has the right to get a land-line installed, even if that installation by itself is a commercial loss for the company. This could be the case on certain remote islands or other rural areas. The Danish state compensates the telephone operator for this potential loss.
Many other utility companies run in a similar fashion. Some are semi-public, some are private, but common to water, electricity, garbage disposal, heating, and other operators is that they are regulated by government.
When a utility becomes important to the functioning of society, a sensible government steps in to regulate it to ensure the further smooth functioning of society.
I think that the services offered by Google, Facebook, and Twitter are fast approaching a level of significance that ought to trigger government regulation.
I don't say that lightly. I'm actually quite libertarian in my views, but I'm no anarcho-libertarian. I do acknowledge that a state offers essential services such as protection of property rights, a judicial system, and so on.
How should we regulate social media? I think we should start by exchanging accountability for the right to post.
Let's take another step back for a moment. For generations, it's been possible to send a letter to the editor of a regular newspaper. If the editor deems it worthy for publication, it'll be printed in the next issue. You don't have any right to get your letter published; this happens at the discretion of the editor.
Why does it work that way? It works that way because the editor is accountable for what's printed in the paper. Ultimately, he or she can go to jail for what's printed.
Freedom of speech is more complicated than it looks at first glance. For instance, censorship in Denmark was abolished with the 1849 constitution. This doesn't mean that you can freely say whatever you'd like; it only means that government has no right to prevent you from saying or writing something. You can still be prosecuted after the fact if you say or write something libellous, or if you incite violence, or if you disclose secrets that you've agreed to keep, etcetera.
This is accountability. It works when the person making the utterance is known and within reach of the law.
Notice, particularly, that an editor-in-chief is accountable for a newspaper's contents. Why isn't Facebook or Twitter accountable for content?
These companies have managed to spin a story that they're platforms rather than publishers. This argument might have had some legs ten years ago. When I started using Twitter in 2009, the algorithm was easy to understand: My feed showed the tweets from the accounts that I followed, in the order that they were published. This was easy to understand, and Twitter didn't, as far as I could tell, edit the feed. Since no editing took place, I find the platform argument applicable.
Later, the social networks began editing the feeds. No humans were directly involved, but today, some posts are amplified while others get little attention. Since this is done by 'algorithms' rather than editors, the companies have managed to convince lawmakers that they're still only platforms. Let's be real, though. Apparently, the public needs a programmer to say the following, and I'm a programmer.
Programmers, employees of those companies, wrote the algorithms. They experimented and tweaked those algorithms to maximise 'engagement'. Humans are continually involved in this process. Editing takes place.
I think it's time to stop treating social media networks as platforms, and start treating them as publishers.
Facebook and Twitter will protest that it's practically impossible for them to 'edit' what happens on the networks. I find this argument unconvincing, since editing already takes place.
I'd like to suggest a partial way out, though. This brings us back to regulation.
I think that each country or jurisdiction should make it possible for users to opt in to being accountable. Users should be able to verify their accounts as real, legal persons. If they do that, their activity on the platform should be governed by the jurisdiction in which they reside, instead of by the arbitrary and ill-defined 'community guidelines' offered by the networks. You'd be accountable for your utterances according to local law where you live. The advantage, though, is that this accountability buys you the right to be present on the platform.
I'm aware that not everyone lives in a benign welfare state such as Denmark. This is why I suggest this as an option. Even if you live in a state that regulates social media as outlined above, the option to stay anonymous should remain. This is how it already works, and I imagine that it should continue to work like that for this group of users. The cost of staying anonymous, though, is that you submit to the arbitrary and despotic rules of those networks. For many people, including minorities and citizens of oppressive states, this is likely to remain a better trade-off.
This suggestion is in no way perfect. I can already identify one problem with it.
A country could grant its citizens the right to conduct infowar on an adversary; think troll armies and the like. If these citizens are verified and 'accountable' to their local government, but this government encourages rather than punishes incitement to violence in a foreign country, then how do we prevent that?
I have a few half-baked ideas, but I'd rather leave the problem here in the hope that it might inspire other people to start thinking about it, too.
This is a post that I've waited for a long time for someone else to write. If someone already did, I'm not aware of it. I can think of three reasons:
The idea is, in short, to make it optional for users to 'buy' the right to stay on a social network for the price of being held legally accountable. This requires some national as well as international regulation of the digital infrastructure.
Could it work? I don't know, but isn't it worth discussing?
Comments
Hi Mark, I would just like to say that I like the idea :)
Thank you for writing this.


{% raw %}{% extends "base.html" %} {% block title %}Page not found{% endblock %} {% block content %} Page not found (404) This is not the page you were looking for. {% endblock content %} {% endraw %}
This is not the page you were looking for.


A button loop is a template file construct which allows you to iterate through the collection of buttons that CodeGen has information about.
The definition of the buttons processed in a button loop can come from one of two places. If you are processing based on a UI Toolkit input window definition then by default the collection of buttons is determined by the buttons found in that input window definition. Otherwise the button collection is defined by a configuration file called DefaultButtons.xml, which you will find in the folder that you installed CodeGen into.
Note: Even if you are processing based on a UI Toolkit input window definition, you can chose to ignore the definition of buttons found in the window and use the definitions from DefaultButtons.xml via the –b command line option.
Button loops are delimited by a matching pair of <BUTTON_LOOP> and </BUTTON_LOOP> tags that surround the template code to be inserted for each button. The code between the opening and closing tags of a button loop is repeated for each button in the button collection.
Button loop tokens are tokens that can only be used within a button loop:
•Button Loop Expression Tokens
There are two types of button loop, multi-line button loops and in-line button loops.
Multi-Line Button Loops
Multi-line button loops occur when the opening and closing button loop tags appear on separate lines in a template file, and delimit one or more entire lines of template code, like this:
[code]
<BUTTON_LOOP>
code
</BUTTON_LOOP>
[code]
Multi-line button loops generate one or more lines of output code for each button that is processed.
In-Line Button Loops
In-line button loops exist when the opening and closing button loop tags appear on the same line in a template file, and delimit part of a line of template code, like this:
[code] <BUTTON_LOOP> code </BUTTON_LOOP> [code]
In-line button loops generate code into the current output line only.
Default Buttons
The default buttons are defined in DefaultButtons.xml, as follows:
<?xml version='1.0'?>
<CodeGenDefaultButtons>
<Button name="Ok" caption="OK" image="" method="" elb="" quickselect="O" />
<Button name="Cancel" caption="Cancel" image="" method="" elb="" quickselect="C" />
<Button name="Help" caption="Help" image="" method="" elb=""quickselect="H" />
</CodeGenDefaultButtons>
Special Button Processing
When generating application source code, and in particular forms, it is often useful to be able to identify a button as either an "OK" button (which generally saves the data and closes the form) or a "Cancel" button (which closes the form without saving the data). Unfortunately there is no way to easily identify this from information in a UI Toolkit input window script.
CodeGen considers a button to be an "OK" button if the term "OK" appears in either the name or caption of the button.
CodeGen considers a button to be a "Cancel" button if the word "Cancel" appears in the buttons name or caption, or if the word "abandon" appears in the buttons name (UI Toolkit programmers often name the cancel button O_ABANDON).
The status a button as either an OK or Cancel button can be tested with the button loop expressions <IF OKBUTTON> and <IF CANCELBUTTON>.
Copyright © 2021 Synergex International, Inc.


Git cheat sheet
March 26, 2016
General
git help or git --help
git help <command>
git status
git log
git log -p <file> #history for a given file
exit
Comments to the commits:
- the Pandas project uses various three-letter keys to indicate the type of commit, such as (ENH)ancement, BUG, and (DOC)umentation.
Local repos
git init #create repo
git add <file> #stage file
git add . #adds all new files
git add -u #updates tracking for deleted or renamed files
git add -A # same as previous two ones
git commit -m "message" #commit to local repo
git commit -a #automatically stage tracked files that have been modified or deleted
git diff #changes in working directory not yet staged for a commit.
git diff --cached #changes that are staged
git tag <tag> #mark current commit with a tag
Undoing things
git checkout <commit> <file> #restore local file to a previous
git checkout master #return to the most advanced point after chckout of a previous
git checkout HEAD <file> #restore local files to the last commited state (does not affect new files)commit
git reset HEAD #make index same as HEAD (discarding staged files)
git reset HEAD <stagedfile>#make index same as HEAD; remove file from the index
git reset --hard <commit> #discard all local changes permamently
git revert <commit> #remove given commit from history
git rm --cached <file> #removes the file from index alone and keeps it in your working copy: exact opposite of git add file
Diagram: git data transport commands (by Oliver Steele)
Branches
git branch #see branches, and what branch you are in
git branch -d brnchname #delete
git checkout branch #create or move HEAD to the branch
git checkout master #switch back to the master
git merge branch #merge branch into the current branch (typically, master)
git merge --abort
git rebase <branch> #rebase current HEAD into branch
Remote repos
git clone ssh://...
git push <branch> #take local changes to remote repo
git fetch <remote> #download changes but don't integrate into HEAD
git pull <remote> #download changes and integrate/merge into HEAD
git remote add origin https://github.com/... : links local to remote repo
git remote -v #list configured remotes
git remote show <remote> #
Git configuration
git config --global user.name "name"
git config --global user.email "email"
git config --global core.editor "nano"
git config --list
Github
- Fork another user’s repo: creates a copy of their repo; can clone into your local desktop
- Pull request
References
- Diagram by Oliver Steele: http://blog.osteele.com/images/2008/git-transport.png
- http://www.git-tower.com/blog/git-cheat-sheet/
- http://git-scm.com/book/en/v2


Aspire Bank
Account Information
Transfer Cash
Balance Statement
Notification
Requests
View Profile
Edit Profile
Credit Card
Logout
Notifications
Description
To
Amount
Accept/Decline
Something
Something
Something
Something


| DOSE: |
1 hit |
oral |
LSD |
(blotter / tab) |
I saw something about Snow White the other day and it got me to thinking about my first acid trip. I was 16, and had recently just begun my venture into the world of drugs. Of course it all started with that horrible 'gateway' drug, marijuana. I always scoff any time I hear someone say that, but that's pretty much how it went down for me. I'd been smoking the dope for awhile and was ready to try something new.
My friend Kevin and I were getting ready to go to a Cavs basketball game with my dad, and he had a couple hits in his pocket, and suggested I try one. This was in the days before pyramids and geltabs, microdots and every other kind of acid technology would later come up with. Those forms were supposed to be 'cleaner' but never seemed to pack the punch that I got from paper. Good ol' fashioned white blotters. Best 5 bucks you'd ever spend. And to think, all these kids are going crazy today over X, spending as much as $30 a hit to get one tenth the buzz.
I didn't know much about acid or what to expect. That was probably for the best. Kevin just said it would make me laugh and I would see some cool stuff. Sounded good to me. What could possibly go wrong? He said it would take about 30 minutes to an hour to kick in. It was about a 40 minute ride to the arena, so I figured we'd arrive, find our seats with my dad and then Kevin and I could wander around the arena just as it was kicking in. No big deal, right? I had no idea what was in store.
Much to my surprise, my dad decided to stop off on the way for dinner at a local restaurant. Unexpected. This meant I was going to be sitting at a table right across from my unsuspecting father right as this awful drug was kicking in. We rode to the restaurant in complete silence, my dad driving and myself in the passenger seat. About half way there I began feeling cold and my leg started to shake. This overwhelming feeling of 'I know something you don't know' came over me. I dared not turn around and look at Kevin in the back seat. Just try and stay focused. Finally we arrived at the restaurant. We got out of the car. I looked at Kevin and he looked at me, at which point the silence was broken when Kevin said with a straight face 'pretty fuckin' funny, huh?' We both broke out into hysterical laughter.
We somehow managed to make it through dinner, trying as best as we could to conceal that fact that our brains were tainted by psychotropic hallucinogens. Not an easy thing to do. Ever seen Fear and Loathing in Las Vegas when Johnny Depp tries to act normal while talking to the desk clerk in the hotel lobby? I can only imagine what my dad was thinking. We arrived at the game to see the sloppiest first quarter of basketball I've ever seen. The Cavs were playing the Orlando Magic, and it was like watching the Washington Generals vs the Washington Generals.
Several minutes went by without either team even getting a shot off. Turning the ball over, players falling down and tripping over each other, throwing the ball out of bounds. This was pure torture. I wanted to laugh so bad tears were coming down my face but seeing as there was nothing that a normal person would consider funny about the situation I had to hold back. My dad kept asking me if I was all right. I could only hunch over and pretend to have a stomachache. This was simply too much. It was time for Kevin and I to get out of there before my dad started to think something was up.
We began to walk around the concourse. As we walked we both saw a strange boy, probably a few years older than us. Not sure if he was tripping too or if he had before and could tell we were under the influence and wanted to mess with our heads, but he stared directly at us with his beady little eyes and stuck his tongue out. Now what we saw was one of those big lizard kinds with the forked tongue. That was the first part of this experience that really freaked me out. I can only assume that he actually existed since we both saw him. A bit stunned, we continued on our way.
We decided to stop and get some ice cream cones. The ice cream at the arena is soft serve, so we decided to get 2 large cones, chocolate and vanilla swirl. The cones were always fairly large, but on this particular day, who knows, maybe it was the drugs, but they seemed to be about 2 feet tall. We walked down the concourse with our ridiculously large ice cream cones, when suddenly we hear a voice from above - 'STOP!'
We froze dead in our tracks. Had someone somehow found us out??? We awaited our fate breathlessly. Then the voice spoke again. 'Everybody Limbo!!!' Suddenly we realized it was the public address announcer and limbo music began playing throughout the arena. Here we were, doing the limbo on acid while carrying 2 feet tall ice cream cones. Once again we broke into hysterical laughter. We decided to saunter upstairs and see what the world was like up there.
As we got to the top of the escalator, I noticed a balding fat man wearing a trench coat. This character was suspicious to say the least. He headed straight for us. He inched our way until he was standing about a couple feet away from me against the wall. He slowly turned his head and said 'pssssssst' Now this time I thought surely someone has found us out for real. This guy knows what we're up to and he wants to either expose us or join in the fun. Now I'm not sure if this guy was just slow but what he said next left me momentarily speechless. In an eerie whisper he leaned over and said 'where'd you guys get the icecream cones?' Not sure what the big secret was, or why he felt that he needed to whisper, but once again we broke into hysterical laughter.
We got back to our seats just in time for the half time show. It was the Cavs wheel chair basketball team. Now there is nothing funny about disabled people, but under the circumstances this was almost too much. Just when I thought I couldn't take any more and was about to lose it another voice came over the loudspeaker. It was an advertisement for Disney on Ice and a tiny sounding Disney voice said at what seemed like a million miles an hour 'sleepyhappydopeygrumpysneezybashfuldoc!!!!' What I heard was more like 'stumpy lumpy dumpy grumpy wheezy trash-ho cock' I choked back my laughter. My dad turned and looked at me and again asked if I was ok. I again hunched over and pretended to moan in pain. The rest of the game/trip was more of the same.
All in all it was fairly pleasant for a first trip. Probably best that I didn't know too much about the drug going in. Otherwise I might have been a bit paranoid. My second trip did not go nearly as well. Not knowing much about acid I of course didn't know about acid hang over either, and I was able to parlay it into a sick day from school the following morning. I slept like a baby.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Off-Topic
To all the people who think Charlie and Customality are liars
(7)
To all the complaints about no update
(2)
Looking for modded games on roblox
(1)
Apple or Samsung?
(
2
)
(25)
Custom is not working on Sentinel
(6)
To Heaven Frxst
(2)
Custom and Charlie Bullshit Evolution
(5)
Another question for you
(20)
New literally legit website for downloading exploits
(
2
3
)
(47)
About Synapse X
(7)
Hexus,This program not update
(2)
Can staff respond this?
(4)
(Closed)
(2)
New Roblox Dank Memes
(1)
What i'm gonna do when hexus updates
(3)
New Synapse Discord Server
(1)
Hexus discord pls xd
(3)
It is now saturday
(8)
$20 Steam Card Giveaway GOOD luck
(4)
I can make someone a low level website
(1)
Can someone make this a theme?
(2)
Hey! Ill make a custom theme for you
(
2
)
(37)
Losing the hype
(
2
)
(35)
(HEXUS HAS BEEN UPDATED) (not shitpost) (not meme) (gone sexual)
(
2
)
(31)
Read thiss
(4)
Scripting question
(1)
JOIN ME MY BROTHERS AND SISTERS ITS TIME TO RAGE RAGEE RAGGEE I SAY MAY GOD FORBID
(3)
HEXUS UPDATED! (CLICKBAIT)
(1)
SYNAPSE X IS HERE! FINALY!
(10)
DID it update
(6)
← previous page
next page →


Austin libraries
For 30 days between March 19th and April 17th, 2016, I visited a different library in Austin and posted to my microblog about each one. The best libraries can be wonderful, quiet places to work. I always brought my iPad Pro with me to do some writing.
Here are the libraries, with the date linked to each post:
- Cedar Park Public Library — Mar 19 (photo)
- Wells Branch Community Library — Mar 20 (photo)
- Little Walnut Creek Branch — Mar 21
- North Village Branch — Mar 22
- Old Quarry Branch — Mar 23
- Howson Branch — Mar 24 (photo)
- Westbank Community Library — Mar 25 (photo)
- Yarborough Branch — Mar 26
- a Little Free Library — Mar 27 (photo)
- Spicewood Springs Branch — Mar 28
- Laura Bush Community Library — Mar 29 (photo)
- Pflugerville Public Library — Mar 30
- Manchaca Road Branch — Mar 31
- Faulk Central Library — Apr 1
- Austin Community College Riverside — Apr 2
- another Little Free Library — Apr 3 (photo)
- Ruiz Branch — Apr 4 (photo)
- University Hills Branch — Apr 5
- Perry-Castañeda Library at UT — Apr 6
- Round Rock Public Library — Apr 7
- Hampton Branch — Apr 8
- Lake Travis Community Library — Apr 9 (photo)
- a 3rd Little Free Library — Apr 10
- Twin Oaks Branch — Apr 11
- Bee Cave Public Library — Apr 12 (photo)
- Leander Public Library — Apr 13 (photo)
- Pleasant Hill Branch — Apr 14
- Terrazas Branch — Apr 15
- Windsor Park Branch — Apr 16 (photo)
- Architecture & Planning Library at UT — Apr 17
I also wrote a post after 1 week and a final wrap-up post.


Food Market Part-Dieu / BOMAN + Forme Studio Architectes
- Curated by Paula Pintos
- about 14 hours
Sustainability · Lyon, France
- version="1.0" encoding="UTF-8"? Architects: BOMAN, Forme Studio Architectes
- AreaArea of this architecture projectArea: 436.0 m2
- version="1.0" encoding="UTF-8"?YearCompletion year of this architecture project Year: 2019
- version="1.0" encoding="UTF-8"?PhotographsPhotographs: Antoine Séguin
- version="1.0" encoding="UTF-8"?ManufacturersBrands with products used in this architecture project Manufacturers: AutoDesk, Maximum
- Lead Architects Claire Bourgès-Maunoury, Laurent Lustigman, Clément Maître, Robinson Neuville
- Design Team Boman, Forme
- Clients Le Food Market
- Collaborators Patrimëlle
More Specs Less Specs
Text description provided by the architects. In Lyon, Forme and Boman design the 1st temporary and reversible food court in one of the biggest shopping centers in France, La Part-Dieu.
Le Food Market, the staple of Parisian street food launched in 2015 on the boulevard de Belleville, has just moved into the ground-floor of the La Part Dieu shopping center in Lyon. It will stay for a year, as a teaser for a bigger food court scheduled to open in 2020. Inspired by the emblematic steel tubes of French travelling market stalls, the architects have created a surprising atmosphere: a gigantic scaffold unfolds in the entire restaurant space.
Designed and built with a zero waste objective, the entirety of the installation is removable and recyclable. The building site scaffolding, rented for a year to fit the duration of Le Food Market’s project, is the unique frame for the interior arrangement. The clamping collars are screwed directly into the structure which allows for the furniture to be attached directly to it : display stands, bars, counters, tables, shelves, raised floors etc. The partitions, made from vertical blinds, spread out on the metallic grid in order to segment the space and create intimacy.
The chairs, designed by “Maximum” from recycled plastic waste are the only elements that are free to move around. Every chair is unique as is every table. Their variable-geometry design breaks away from the traditional codes of the neighboring restaurants.
The architects wish to defend the values of Le Food Market through the design of a temporary installation capable of moving without leaving a trace: a virtuous shock wave bearing the colours of conviviality, reversibility and sustainable development.


Together, we will create a site-map that will include all the pages of your webiste. After we've created the basic structure we will start designing each page of the website, the logo and the overall website mock-ups. Then, we will be able to design your website details in Photoshop and move further to implementation.
With a clear picture of what needs to be done, we can then start coding the project. Using the latest available technologies like HTML5, CSS, Javascript and ReactJS our experienced teams of web developers will start developing the project. By using Agile Project Management techniques the team assigned to your project will implement each task and ensure you that the project milestones will be respected, as well as the final dead-line.
Our mobile development team is specialized in working with native mobile development programming languages like Android and Swift, and with React Native as well. The project management and development techniques are the same as for web development projects. We will be using Agile/Scrum for developing fast and easy to trobleshoot code.
We constantly study because we want our clients to have the best possible experience with us. This is why we've started implementing the Blockchain and smart-contracts technology. Our programmers use Solidity programming language in order to digitalize any real-world contract. This will help our customers to improve and expand their businesses worldwide using the cryptocurrency environment.
We code using the best practices in the market. By creating applications that are well structured, modular and easy to read, we assure ourselves that any troubleshooting intervention will be as fast as possible. By writing clean and maintainable code we also improve the security of your website. After the project is completed, we will guide you to the appropriate web-hosting companies which can protect your website from hackers and different kind of attacks.
While developing your project we take into consideration the best practices for search engine optimization so that, once the project is completed, we could also start SEO, PPC or Add-words campaigns. Our marketing specialists have a combined experience of over 50 years, time in which they have hit many issues and changes in their struggle with the search engines to bring their clients to the nr. 1 page in search results.
Full Stack Development is a young agency, interactive and specialized in delivering turnkey solutions for the development of businesses on the world wide web. Our agency offers the complete solution for communicating in the online environment: web design, corporate websites, blogs, forums, online stores and mobile applications. Our company also offers services for custom programing of P.L.C.'s (Programable Logical Controllers). The combined experience of our programmers reaches to almost 50 years in different areas of programming. Besides programming we can help you by:
- reach the nr. 1 page on google by optimizing your website for SEO
- increase your sales through google AdWords, PPC (Pay per Click) or e-mail marketing campaigns
- create awareness of your brand through social media campaigns (online) and/or advertising production (offline)
Designed by Sorin Craciunescu


BelongsToMany
Extends:
Many-to-many association with a join table.
When the join table has additional attributes, these can be passed in the options object:
UserProject = sequelize.define('user_project', {
role: Sequelize.STRING
});
User.belongsToMany(Project, { through: UserProject });
Project.belongsToMany(User, { through: UserProject });
// through is required!
user.addProject(project, { through: { role: 'manager' }});
All methods allow you to pass either a persisted instance, its primary key, or a mixture:
Project.create({ id: 11 }).then(function (project) {
user.addProjects([project, 12]);
});
If you want to set several target instances, but with different attributes you have to set the attributes on the instance, using a property with the name of the through model:
p1.UserProjects = {
started: true
}
user.setProjects([p1, p2], { through: { started: false }}) // The default value is false, but p1 overrides that.
Similarly, when fetching through a join table with custom attributes, these attributes will be available as an object with the name of the through model.
user.getProjects().then(function (projects) {
let p1 = projects[0]
p1.UserProjects.started // Is this project started yet?
})
In the API reference below, add the name of the association to the method, e.g. for User.belongsToMany(Project)
the getter will be user.getProjects()
.
Method Summary
| Public Methods | ||
| public |
add(newAssociation(s): Model[] | Model | string[] | string | number[] | Number, options: Object): Promise Associate one ore several rows with |
|
| public |
count(options: Object): Promise<Integer> Count everything currently associated with this, using an optional where clause. |
|
| public |
create(values: Object, options: Object): Promise Create a new instance of the associated model and associate it with this. |
|
| public |
Get everything currently associated with this, using an optional where clause. |
|
| public |
has(instance(s): Model[] | Model | string[] | String | number[] | Number, options: Object): Promise<boolean> Check if one or more instance(s) are associated with this. |
|
| public |
Un-associate one or more instance(s). |
|
| public |
Set the associated models by passing an array of instances or their primary keys. |
Inherited Summary
| From class Association | ||
| public |
associationType: string The type of the association. |
|
| public |
|
|
| public |
|
Public Methods
public add(newAssociation(s): Model[] | Model | string[] | string | number[] | Number, options: Object): Promise source
Associate one ore several rows with this
.
Params:
| Name | Type | Attribute | Description |
| newAssociation(s) | Model[] | Model | string[] | string | number[] | Number |
|
A single instance or primary key, or a mixed array of persisted instances or primary keys |
| options | Object |
|
Options passed to |
| options.validate | Object |
|
Run validation for the join model. |
| options.through | Object |
|
Additional attributes for the join table. |
Return:
| Promise |
public count(options: Object): Promise<Integer> source
Count everything currently associated with this, using an optional where clause.
Params:
| Name | Type | Attribute | Description |
| options | Object |
|
|
| options.where | Object |
|
An optional where clause to limit the associated models |
| options.scope | String | Boolean |
|
Apply a scope on the related model, or remove its default scope by passing false |
Return:
| Promise<Integer> |
public create(values: Object, options: Object): Promise source
Create a new instance of the associated model and associate it with this.
Params:
| Name | Type | Attribute | Description |
| values | Object |
|
|
| options | Object |
|
Options passed to create and add |
| options.through | Object |
|
Additional attributes for the join table |
Return:
| Promise |
public get(options: Object): Promise<Array<Model>> source
Get everything currently associated with this, using an optional where clause.
Params:
| Name | Type | Attribute | Description |
| options | Object |
|
|
| options.where | Object |
|
An optional where clause to limit the associated models |
| options.scope | String | Boolean |
|
Apply a scope on the related model, or remove its default scope by passing false |
| options.schema | String |
|
Apply a schema on the related model |
See:
- Model.findAll for a full explanation of options
public has(instance(s): Model[] | Model | string[] | String | number[] | Number, options: Object): Promise<boolean> source
Check if one or more instance(s) are associated with this. If a list of instances is passed, the function returns true if all instances are associated
Return:
| Promise<boolean> |
public remove(oldAssociated: Model | String | Number, options: Object): Promise source
Un-associate one or more instance(s).
Params:
| Name | Type | Attribute | Description |
| oldAssociated | Model | String | Number |
|
Can be an Instance or its primary key, or a mixed array of instances and primary keys |
| options | Object |
|
Options passed to |
Return:
| Promise |
public set(newAssociations: Array<Model|String|Number>, options: Object): Promise source
Set the associated models by passing an array of instances or their primary keys. Everything that it not in the passed array will be un-associated.
Params:
| Name | Type | Attribute | Description |
| newAssociations | Array<Model|String|Number> |
|
An array of persisted instances or primary key of instances to associate with this. Pass |
| options | Object |
|
Options passed to |
| options.validate | Object |
|
Run validation for the join model |
| options.through | Object |
|
Additional attributes for the join table. |
Return:
| Promise |


Overview
ATT&CK Description
Wizard Spider is a financially motivated criminal group that has been conducting ransomware campaigns since at least August 2018 against a variety of organizations, ranging from major corporations to hospitals. [1] [2]
Sandworm Team is a destructive Russian threat group that has been attributed to Russian GRU Unit 74455 by the U.S. Department of Justice and U.K. National Cyber Security Centre. Sandworm Team's most notable attacks include the 2015 and 2016 targeting of Ukrainian electrical companies and 2017's NotPetya attacks. Sandworm Team has been active since at least 2009. [1] [2] [3] [4]
Emulation Notes
This round will focus on how multiple groups abuse Data Encrypted For Impact (T1486). In Wizard Spider’s case, they have leveraged data encryption for ransomware, including the widely known Ryuk malware (S0446). Sandworm, on the other hand, leveraged encryption for the destruction of data, perhaps most notably with their NotPetya malware (S0368) that disguised itself as ransomware. While the common thread to this year’s evaluations is Data Encrypted for Impact, both groups have substantial reporting on a broad range of post-exploitation tradecraft.
Technique Scope
For the Wizard Spider and Sandworm evaluation, the highlighted ATT&CK techniques are in scope for this evaluation. Linux techniques are included in the scope of this evaluation, though will only represent a small portion of the evaluation. The Linux portion of the evaluation is optional for participants. This will also mark the first time the impact tactic is in scope for the evaluation.
You can view the in-scope Techniques for the Wizard Spider and Sandworm evaluation in the ATT&CK Navigator by checking out the layer file we made available here. A preview is shown below! The Techniques in scope attributed specifically to Wizard Spider are highlighted in purple, attributed specifically to Sandworm in blue, and both Wizard Spider and Sandworm in grey.
Environment
Environment configuration is subject to change. Any changes will be reflected on this page. Full environment configuration details will be available upon the release of results. (Updated June 14, 2021 to add CentOS kernel build version)
The evaluations will be performed in the Microsoft Azure Cloud. There will be two organizations with separate networks and domains, with Windows Defender disabled for certain portions of the evaluations. The networks will contain domain joined machines running Windows Server 2019, Windows 10 Pro, and CentOS 7.9. The versions are as follows:
-
Windows Server 2019
- Publisher: MicrosoftWindowsServer
- Version: 1809
- SKU: 2019-Datacenter
-
Windows 10 Pro
- Publisher: MicrosoftWindowsDesktop
- Version: 20h2
- SKU: 20h2-pro
-
CentOS 7.9
- Publisher: Open Logic
- SKU: 7_9
- Kernel: 3.10.0-1160.15.2.el7.x86_6
Detection Categories
Vendors use their own terminology and approaches to detect and protect potential adversary behavior. They provide this information to us in their unique way, and then it is our responsibility to abstract the data using categories to talk about the products in similar ways.
These categories are divided into two types: “Main” and “Modifier.” Each detection or protection receives one main category designation, which relates to the amount of context provided to the user, and may optionally receive one or more modifier category designations that help describe the event in more detail. For the Wizard Spider and evaluation, there are six main detection categories representing the amount of context provided to the analyst, and three main protection categories.
You can learn more about our process for processing detections here.


NIT MCA Common Entrance Test (NIMCET) is a national-level test for admission to MCA program in the NITs. NIMCET 2019 will be administered by NIT Surathkal. The exam is scheduled for May 27 in offline mode. A total of 805 seats are offered in 11 NITs.
Registration for NIMCET 2019 will begin from first week of March 2019. Candidates must have at least 60% aggregate (55% for SC/ST) in their Bachelor’s degree with Mathematics or Statistics as a subject to stand eligible. Nearly 25,000 candidates register for the test each year. Successfully registered candidates can download NIMCET Admit Card 2019 between May 14- 25, 2019.
- NIMCET 2019 will have 120 objective-type questions of 4 marks each. The duration of the test is 2 hours.
- The paper has 4 sections- Mathematics (50 questions), Analytical Ability & Logical Reasoning (40 questions), Computer Awareness(10 questions),General English(20 questions).
- NIMCET 2019 Result will be declared on or before June 06. Candidates will be ranked based on their NIMCET Score and subsequently invited for counselling procedure.
NIMCET 2019- Important Information
- Expect a delay in receiving the confirmation mail. Please wait at least 10 minutes.
- Applicants who didn't get the confirmation mail while trying to register, please click on "Contact Us" above and message your registered email id to us.
- Users who are using spam filter services must whitelist<EMAIL_ADDRESS>to receive the mail or check the whitelist emails.
Highlights of NIMCET 2019
| Exam Name | NIT MCA Common Entrance Test |
| Conducting Body | National Institute Of Technology, Surathkal |
| Exam Level | National |
| Mode of Exam | Paper Pen |
| Duration of Exam | 120 minutes |
| Type and Number of Questions | 120 MCQs |
| Courses Offered | MCA |
| Number of Seats | 805 |
| Participating NITs | 11 |
| NIMCET Helpline | 0824-2473252 |<EMAIL_ADDRESS>|


Jetty has been integrated into the JOnAS J2EE application server.
Downloads are available at http://forge.objectweb.org/project/showfiles.php?group_id=5