These are Salty Memes for the people. Come get some. I think you’ll enjoy them. The kinda thing to wake up you bright eyed and red pilled!
GOVERNMENT WILL SHUT DOWN
Seemed like a good plan at the time
Irony
I haven’t stirred up religious controversy in a while
Lots of people seem to hate peace and are suffering from troop withdrawal syndrome
40 love yellow vests
My personal litmus
Just shutdown things
Get your learning here
I recently learned I can only send 2 btc per day said no miner ever
This meme is sexist
Just what the lord had in mind
800k is a lot of kids. Why don’t we ever hear about this on the news?


Home
Add Route
Add Tutor
Add Game Keeper
Log Out
Game Keeper Account
Add Game Keeper
Game Keeper Details
Add Game Keeper


You can use $('#myFormId').htmlForm() to get the html of the form. If you need the full form element use $('#myFormId').htmlForm({full:true});


Ermo
Hong Kong, 1994; Chinese with English subtitles
Seen on video with Linda.
Ermo is the much younger wife of a former village "chief" who is trying, in rural Chinese fashion, to keep up with the Joneses. The town is nestled in the mountains and is accessible by a long winding mountain road. All the houses are about ten feet apart from each other. Ermo, her husband and son live in a comfortable house, but their neighbor--"Blindman"--is a successful hauler and has a TV. The only TV in the village. Tiger, Ermo's son, is constantly over there watching the tube
Ermo spends long days in physical labor, weaving baskets and making twisty noodles. She then trudges into the closest larger town to sell her wares. She is determined and will not be bargained down her selling prices. She endures the insults of Blindman's wife and eventually decides that she is going to make enough money to buy the biggest TV in the county, one even the county chief does not have. This leads her to eventually working in the city as a noodle maker at a restaurant, and even living away from home so she can make as much money as she can and not waste time commuting. She even starts selling blood for money, at an alarming rate. Another evil enters the picture as well: Blindman, who constantly complains of his "fat, slack-assed wife" is paying Ermo a lot of mind, and making the career suggestions that keep her from her home
Ermo is a tedious cross between Madame Bovary and Sunrise. It is hard to know whether or not it is the cultural differences that make it a less than compelling experience, or if it is in fact just slow moving and unempathetic. The movie clearly moralizes that the best things in life are free. That Ermo sinks to demeaning depths all for the sake of buying a 29-inch TV set really hits you over the head.
China is undergoing a major cultural change as free-market influences force rural dwellers into facing the 20th Century. Ermo's husband was once the Communist chief of the village. He keeps reminding everyone that he is no longer the chief when he is called by that nickname. It is clear that having what you need and living communally has been replaced by the art of the deal and having it all. If nothing else, Ermo provides a glimpse of what sort of mindset and circumstances a tremendous percentage of the global population possess. If most Chinese villages are like the one in Ermo, you can easily understand why the news of Tianenmen Square was easily propagandized; what you cannot see or hear, you cannot think about.
Ermo, like many women she probably represents, is naive and the best parts of the movie are when she "visits" the TV she intends to buy, wondering if the TV has forgotten Chinese when foreign language programs, and hoping it does not "wear out" by the time she has saved up enough yuan to buy it. God only knows what she would do when she finds out about VCRs.
Was it all worth it for Ermo? In many ways, the final moments of the film answer that question very well.
More reviews by Seth Bookey are available at http://www.geocities.com/Athens/2679/kino.html
Copyright (c); 1997 Seth J. Bookey, New York, NY 10021 USA<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


part of dajkstra;
const INVALID = double.INFINITY;
var graph = null;
findShortestPath(in_graph) {
graph = in_graph;
return search(graph.start, new PList(), 0);}
search(currentNode, currentPath, currentCost) {
// NodeState:
// Considering a new node in our search. Here 'currentNode' is the
// node we are currently considering, 'currentPath' is the path of
// nodes we have taken up to this point (not including
// 'currentNode') and 'currentCost' is the total cost of the path up
// to the current node. The graph is represented by 'graph'.
if (currentNode == graph.end) {
// PathState:
// A path has been found since 'currentNode' is the end point of
// the path. So the result is the cost of this path.
return currentCost;
}
for (var visitedNode in currentPath) {
if (visitedNode == currentNode) {
// CycleState:
// A cycle has been found since 'currentNode' has already been
// visited. I.e., it is already in the 'currentPath' list. So
// the result is "invalid" signified by the infinitely large cost.
return INVALID;
}
}
// Starting with an "invalid" cost, i.e., we don't know if there
// exists a path yet, we consider each edge of 'currentNode' in turn:
var lowestCost = INVALID;
for (var edge in graph.adjacent(currentNode)) {
// Ignore the edge if it points back to the last visited node,
// i.e., where we just came from.
if (!currentPath.isEmpty && edge.dest == currentPath.hd) {
continue;
}
// EdgesState:
// Considering an edge, 'edge', in the search for the best path.
var cost = search(edge.dest, // The edge destination
currentPath.cons(currentNode), // The new currentPath
currentCost + edge.cost); // The new currentCost
// ContState:
// A new path has been found (potentially). If it is better than our current
// best path 'bestResult', then replace 'bestResult' with the new
// path.
if (cost < lowestCost) {
lowestCost = cost;
}
}
// Return the best cost we have found.
return lowestCost;
}


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object cetus.analysis.AnalysisPass cetus.analysis.ArrayPrivatization
public class ArrayPrivatization
ArrayPrivatization performs privatization analysis of the program. It tries
to find privatizable variables (scalars and arrays) which are written first
then read in a loop body.
The high-level algorithm in below describes the process of detecting
privatizable variables, both scalars and array sections, in a loop. The set
operations that appear in the algorithm are performed on the array sections
if the variable is an array. We use the power of symbolic analysis
techniques in Cetus to make the symbolic section operation possible. For
example, [1:m] (intersect) [1:n]
results in [1:n]
if the expression comparison tool with the value range set can decide
n
is less than or equal to m
.
The algorithm traverses a loop nest from the innermost to the outermost loop.
At each level, it first collects definitions
(write references)
and uses
(read references) in the loop body. Uses that are
covered by prior definitions create privatizable variables (or array
sections) for the current loop. The other uses are
upward exposed
, creating read
references seen in the outer loop. Second, the algorithm aggregates all
these array sections over the loop iteration space, creating the array
sections that are private, written and upward exposed for the entire loop.
The aggregation for the written sections (DEF
) computes the
must-defined regular sections of the arrays over the entire loop iteration
while the aggregation of upward-exposed sections (UEU
) requires
only the conservative value ranges of the sections (may-used sections). This
algorithm is a slightly simpler version of the one used in the Polaris
parallelizing compiler for Fortran77 programs.
procedure Privatization(L) Input : Loop L Output: DEF[L], UEU[L], PRI[L] // DEF: Definded set // USE: Used set // UEU: Upward-exposed set // PRI: Private variables // (^): intersection, (v): union foreach direct inner loop L' in L (DEF[L'],USE[L']) = Privatization(L') G(N,E) = BuildCFG(L) // BuildCFG builds a CFG with the inner loops represented as super nodes Iteratively solve data flow equation DEF for node n in N DEFin[n] = (^) {DEFout[p], p in predecessors of n} DEFout[n] = (DEFin[n]-KILL[n]) (v) DEF[n] DEF[L] = {} UEU[L] = {} PRI[L] = CollectCandidates(L) // CollectCandidates collects variables that satisfies the following: // 1. It has write access in the loop body. // 2. Its subscript do not contain loop-variant variables. foreach loop-exiting node e in N DEF[L] = DEF[L] (^) DEFout[e] foreach node n in N UEU[L] = UEU[L] (v) (USE[n]-DEFin[n]) foreach variable v in UEU[L] PRI[L] = PRI[L]-{v} DEF[L] = AggregateDEF(DEF[L]) UEU[L] = AggregateUSE(UEU[L]) // AggregateDEF aggregates array sections in DEF (MUST set) // AggregateUSE aggregates array sections in USE (MAY set) return (DEF[L], UEU[L]) endArray privatization is invoked by specifying the flag
-privatize
,
and the result is stored as an annotation that contains the set of private
variables. We do not consider a variable with user-defined type as a
candidate private variable, but intend to widen the scope of the analysis
in the future.
| Field Summary |
|---|
| Fields inherited from class cetus.analysis.AnalysisPass |
|---|
program |
| Constructor Summary | |
|---|---|
ArrayPrivatization(Program program)
Constructs an array privatization analyzer for a program. |
| Method Summary | |
|---|---|
void |
analyzeProcedure(Procedure proc)
Starts array privatization for a procedure. |
java.lang.String |
getPassName()
Returns the pass name. |
void |
start()
Starts array privatization by calling the procedure-level driver for each procedure within the program. |
| Methods inherited from class cetus.analysis.AnalysisPass |
|---|
run |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ArrayPrivatization(Program program)
program
- the input program.| Method Detail |
|---|
public java.lang.String getPassName()
getPassName
in class AnalysisPass
public void start()
start
in class AnalysisPass
public void analyzeProcedure(Procedure proc)
analyzeLoop(Loop)
to analyze the outer-most loops in the
procedure. The final step is to annotate the analysis result for each
loop in the procedure.
proc
- the input procedure.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


--- layout: post status: publish published: true title: About my twitter argument author: Ryan Hayden wordpress_id: 1804 wordpress_url: http://www.pastorryanhayden.com/?p=1804 date: '2014-06-23 21:58:38 -0500' date_gmt: '2014-06-24 02:58:38 -0500' categories: - Fundamentalism tags: [] ---
Some days I’m not very proud of myself, and today was definitely one of those days.
There are a couple of reasons I blog:
So this morning, I called him out on it. But I more than called him out on it, I argued with him, on a public forum, off and on for over an hour. It wasn’t pretty.

I want to publicly apologize for that. Whatever good reasons for social networking and blogging exist, defending my own pride isn’t one of them. If you follow me on twitter and had to read a lengthy argument between me and another pastor. I apologize. I’ll do my best to make sure it doesn’t happen again.
If in the future my writing seems a little bit “punchy” or “personal.” Please send me a message, remind me of this post, and keep me accountable.


NerdKingRaises
Master
TOP/JUNGLE
20€/hr
Check Details
NerdKingRaises
Master
TOP/JUNGLE
20€/hr
Check Details
NerdKingRaises
Master
TOP/JUNGLE
20€/hr
Check Details
NerdKingRaises
Master
TOP/JUNGLE
20€/hr
Check Details


Windows has become more stable, versatile and better in recent years. It still has its flaws and windowsHacks helps you to make Windows work for you, to make it better.
Are you switching from macOS to Windows? The Mac-A-Like section has tips on how to get useful Mac features on Windows.
Windows settings: the basics
Display
The default setting of Windows tends to display texts, icons and other things quite large. Because of this you may see less on the screen then you want. You change this in "Settings > "System" > "Display". With scale and layout you have the option to change both the resolution and the size of text and apps. Choose to adjust the latter. The percentage depends on it screen. If the scaling is at 125% then you can try 100%.
Connecting devices
You pair a wireless mouse, headset or other device by going to "Settings" > "Devices" > "Bluetooth & other devices". Make sure bluetooth is enabled on the device you want to pair and click "Add bluetooth or other device".
Touchpad
MacBooks are known for their very good touchpads and they are still the best. Microsoft saw this too and with the addition of Windows Precision Drivers it offers manufacturers the option of adding better touchpads to Windows laptops. Manufacturers such as Dell, Razer and of course Microsoft have good touchpads nowadays. You also have the option to assign tasks to movements on the touchpad such as scrolling or switching desktop. You change this in "Settings" > "Devices" > "Touchpad".
Browser
Windows comes with Microsoft Edge as the default browser. Internet Explorer is also still included, but this is so obsolete that you should no longer use it because it doesn't support modern web technologies and many websites don't work as they should in Internet Explorer.
You are free to install other browsers such as Firefox, Google Chrome or Brave. Microsoft released a new version of Edge in the short term based on Chromium, the engine behind Chrome. It works works very well, offers various privacy options and you can use the Chrome extensions that you are used to.
Download Firefox Download Edge ChromiumDefault apps
Windows offers a lot of freedom when choosing default apps for browser, e-mail and more. Go to "Settings" > "Apps" > "Default apps".
Do you want to change with which program a file type is opened by default? Scroll on the same page to "Choose default apps by file type".
Startup apps
Certain programs are started by default when the PC starts up for Windows to function properly. You can add more programs that you want to start by default, because you use them often. Think of apps like a password manager or an app such as Dropbox for synchronizing files. You select which apps this applies to in "Settings" > "Apps" > "Startup".
Dark Mode
Do you want Windows in dark mode, but certain apps like OneNote not? No problem. Many apps offer an option for a dark or light mode or for the app to follow the Windows settings. Go to "Settings" > "Personalization" > "Colors" and select Dark at "Choose your color".
Free up disk space
On both Mac and Windows, it is sometimes a mystery why so much storage is used. Microsoft has created something handy that makes it very easy to see which data can be deleted without that you need to be scared that an important file is thrown away or that you are breaking something.
Open "Settings" > "System" > "Storage" > "Configure storage sense or run it now".
Here you can, for example, set when temporary files are wiped and for which files you want to do that. In In overview click on "Temporary files" and a new windows opens with al temporary files that can be deleted. Select what you want to delete and Windows will do that. Very convenient.
You should also check your browser(s) on a regular basis to delete data or let the browser do this in the background.
Add fonts
Microsoft made it very easy to add new fonts to Windows. All you have to is download the font of your choice and in Windows you go to "Setting" > "Personalization" > "Fonts" eAnd drag the downloaded font here. If you have the font as a ZIP file, you must first unpack it.
32-bit
Windows, unlike macOS, supports 32-bit applications. Apple did announce a while ago that 32-bit applications would no longer work on versions of macOS released as of autumn 2019. You can defend this decision but it is a fact that for many people this is very inconvenient. With Windows you are not bothered by this.
Gaming
If there is one thing that \everyone agrees on then it is that Windows is better t gaming than macOS. There are various reasons for that, but it is a fact and that is why there are more games for Windows. Even if you are not a hardcore gamer, it is nice that you can play the games that you want on Windows. And with regard to the prevision point about 32-bit; many (older) games are all still 32 bit.
Keyboard shortcuts
Just like macOS, Windows has many keyboard shortcuts that make life easier, making you work faster while being less dependent on a mouse. An important difference with macOS is that on macOS CMD is the magic key and on Windows that is CRTL and the Windows key. That can be confusing in the beginning, but you get used to it quickly.
There are a lot of keyboard shortcuts, but these are the most useful.
| Shortcut | Action |
|---|---|
| Alt + Tab | Switch app |
| Alt + E | Open edit |
| Alt + F | Open file |
| Alt + F4 | Close app |
| Ctrl + A | Select all |
| Ctrl + D | Deselect |
| Ctrl + C | Copy |
| Ctrl + X | Cut |
| Ctrl + V | Plakken |
| Ctrl + N | New item |
| Ctrl + T | New tab |
| Ctrl + W | Close tab |
| Ctrl + Shift + T | Reopen closed tab |
| Ctrl + Delete | Delete word |
| Ctrl + Backspace | Delete word |
| Windows key + A | Open Action Centre |
| Windows key + D | Minimize all windows |
| Windows key + G | Open Game Bar and capture screen |
| Windos key + P | Presentation mode |
| Windows key + Shift + S | Screenshots |
| Windows key + . | Emoji + spectial characters |
| Windows key + Tab | Task view |
| Windows key + Ctrl + D | New desktop |
| Windows key + Ctrl + F4 | Close dekstop |
| Windows key + Ctrl + pijl rechts | Next desktop |
| Windows key + Ctrl + pijl links | Previous desktop |
| Windows key + number | Opens app on the taskbar |
Apps
Notes
Where you have many good note taking apps for the Mac such as Bear, Apple Notes, Evernote, OneNote and more, there are a lot less for Windows. For all-round note apps you have to rely on Evernote and OneNote. On new Windows PCs, OneNote is installed by default.
Just like on macOS, you have Notion on Windows, but that app has the disadvantage that notes are only offline available when they have been opened recently. Although it is a good app and NOtion goes beyond a note app. You create Kanban boards, to do lists and more. Other apps do this too, but not like Notion.
Evernote has fallen behind the competition in recent years.They are working on a major update and might bring them back to the top. It is still one of the better all-rounders. Do you just want an app for taking notes without frills? Then try Simplenote. A good app that does exactly that and it is free.
Do you like taking notes with a pen and if you have something like a Surface Pro, then you should try Nebo as alternative to OneNote. It costs € 9.99 and it is worth every penny. You make handwritten notes and Nebo easily converts the note into typed text and it does that almost flawlessly.
 A to do app helps with this. There are many to do apps and Microsoft To Do is among the best. You quickly create new tasks, lists and groups with options such as:
- Reminders
- Notes
- Attach files
- Sub-tasks
- Share lists
- Assign tasks
Microsoft To Do is versatile with and free. An alternative is Todoist. The basic version of Todoist is free, premium starts at € 3 per month. Both apps are available on Windows, macOS, Android, iPhone and iPad.
Download Microsoft To Do Download TodoistWriting
A note app is great for taking notes and writing short pieces of text. Writing apps offer more structure and overview when writing texts. Moreover, they use Markdown which lets you write faster and with less distraction. Are you done with a text then you can export or copy it to Word, PDF, Markdown or HTML.
Both iA Writer and Typora do an excellent job, with an important difference being that Typora instantly convert Markdown texts to rich text.
Typora is officially still a beta version and currently free. iA Writer costs around € 20 for Windows. If you also want to use it mobile on Android or iOS, the app will cost around € 10 there.
Download Typora Download iA WriterNetflix
Unlike on macOS, you have a separate app for Netflix on Windows. That does not only mean that you can watch series and movies, but you can also download them for offline use. And the latter is ideal for vacations where you have limited internet access.
Download NetflixPocket Casts
If you listen to podcasts, Pocket Casts is the app you need. It's just very good app that available is on iOS, Android, macOS, Windows and as a web app. For the last three you need the premium version and that will cost you € 0.99 per month.  Of course you can also use Spotify and iTunes for podcasts, but Pocket Cast is doing the job better. Its design is nice and you can continue to listen effortlessly on the PC where you stopped on the phone.
Download Pocket Castsf.lux
Staring at a screen with blue light the whole evening is not the most pleasant thing for your eyes. Windows has a built-in solution that adjusts the colors of the screen, but if you don't like it or don't like how it works on your PC then there is f.lux. This app goes beyond the built-in solution of Windows, or macOS, and offers you options to adjust colors and times to your liking. You can download it for free and try out.
Download f.luxPhoto editing and graphic design
Photoshop is the best-known photo editing program, but Adobe subscriptions are too expensive for many of us. Affinity has a very good alternative for both Photoshop (Photo), Illustrator (Designer) and InDesign (Publisher). Each app costs around € 50 and that is a one-time fee, which also gives you updates. For most users, the Affinity apps are full substitutes for Adobe.
Affinity Photo and Affinity Designer zijn ook beschikbaarare also available op Mac and iPad (separate purchases).
Buy AffinitySocial
Are you tired of all the separate social apps such as WhatsApp, Telegram, Skype, Slack and mail? With Franz you combine everything in one app and it is free.
Download FranzBlueMail is one of the better email apps for Windows. The design ensures that you see which actions you can perform and just like Outlook it has a calendar function. Where with Outlook the agenda covers the entire window, the calendar at BlueMail is shown as a slide-in on the right. This works nice and intuitive. You have a dark mode, can add multiple accounts and all other options that you expect from an email app.
For many people the standard mail app from Windows will work fine, if you want more than Outlook and BlueMail are good options.
Download BlueMailSticky Notes
With Sticky Notes you make post-its, only digital. It is a handy little app for quick notes. If you use OneNote on your phone or tablet, the sticky notes will also be available there.
Download Sticky NotesYour Phone: integration with Android phones
If you use an Android phone, you can use it on your PC with Your Phone. You view and edit recent images, read and send text, see notifications and perform phone calls wity your PC. Apple offers something similar to the iPhone in macOS. The iPhone does not (yet) work with Your Phone. This app is part of Windows 10.
PWA
Many apps are only available as web application. You can open it every time within a browser, but that is not great. PWAs (Progressive Web Apps) fix this issue . You still open a PWA within a browser, but if you have Chrome or Edge (Chromium) then you can save it as an "app". This works very well for applications such as Google Translate, Google Docs and Evernote. Technically, you still work in a browserbut it feels more like an app and it has itss own icon on the taskbar.
Read more about PWAsMac-A-Like en apps that are just useful
In recent years, many MacBooks users have made the switch to Windows due to persistent problems with the keyboards on MacBooks and because the reliability of both hardware and software in general became worse. If you have used macOS for years then it takes some time getting used to Windows and not all apps and Mac features are by default available on Windows. With these apps you will make that transition a bit easier.
Quick look
If you select a file, for example an image, in macOS and you tap the space bar then a preview appears. With Quicklook you also get that function on Windows.
Download QuickLookWox: Alfred for Windows
Spotlight and Alfred both boost productivity on the Mac by allowing you to quickly open apps and files or to perform tasks. In Windows you can launch apps quickly by pressing the Windows key and then typing the name of the app. Wox goes beyond that and does for Windows what Alfred does for macOS. You open apps and files with it, but you can also uses it as a calculator. Press Alt + Windows and type what you want to do. Blast is an alternative to Wox, but Wox works better.
Download Wox Download BlastWinXCorners: hot corners
On both Linux and Mac you can assign functions to the corners of the screen when you move the mouse to the corner. WinXCorners does that for Windows, although is not entirely identical to that of Linux and Mac.
Download WinXCornersShareX: screenshots
Making screen shots on Windows was a drama not too long ago. Luckily Microsoft has improved this feature which you can run by using Windows + Shift + S. If you want more than the default option then there is ShareX. With ShareX you can easily make and share screen shots. It saves the last made screen shot and you can even set what should happen by default after making a screen print.
Download ShareXMacType: better font rendering
If there is one thing that macOS does better than Windows then it is font rendering. Especially with lower resolution screens. MacType solves that and renders fonts better.
Download MacTypeSharpKeys
With keyboard shortcuts make life easier, But keyboards and on Windows differ from those on Macs. If you can not or do not want to get used to it, you reassign keys with SharkKeys..
Download SharpKeysWinDynamicDesktop
WinDynamicDesktop brings the dynamic desktop backgrounds from macOS to Windows 10. Based on location it determines sunrise and sunset and changes the desktop background throughout the day. You can import or personalize custom themes, and customize the app to the Windows theme color.
Download WinDynamicDesktopDitto: clipboard manager
Windows nowadays has a decent clipboard manager (Windows key + V). If that does not do the job for you, you might want to give Ditto a shot.
Download DittoSmartTaskbar
macOS hides the taskbar (dock) automatically when you maximize a window. SmartTaskbar does that for Windows. It can hide or shrink the taskbar.
Download SmartTaskbariCloud
Apple released an improved version of iCloud for Windows in 2019 in collaboration with Microsoft. The functions seem similar to the earlier version with a few new options for syncing files and it just works better. You can synchronize bookmarks with Safari, iCloud documents and photos.
Download iCloudSecurity
Security is not the strongest point of Windows by default and there are a few things everyone should do. Even those who have "nothing to hide",because you don't want some random person to be able to install software that follows your activity and sends information about things like making payments.
Passwords
The first step in security is to ensure that your PC is protected with a strong password. If you don't do this, you will leave the door wide open and other security settings will be of little use. A strong password is preferably long. Use for example a sentence that you can remember. Of course you shouldn't reuse passwords, that's why you might need a password manager so you only have to remember one strong password and the password manager takes care of the rest.
The most popular password managers are available on Windows, macOS, Android and iOS. Two good password managers are 1Password and LastPass.
Download 1Password Downsload LastPassUpdates
Make sure that you install updates. The computer may work well for you, but Updates ensure that security holes are solved and that it is less easy for a malicious person break into your PC. Microsoft has improved the installation of updates in recent years. You can turn off major updates, which means you have a little more control.
You can change the settings in > "Settings" > "Update & Security" > "Windows update".
Disk encryption
A laptop is not protected enough with only a password, because files are still easily accessible because the hard disk is not encrypted by default in Windows. Apple has beenoffers FileVault on Macs for disk encryption, but you have to enable it yourself. The moment a user doesn't do this then files on a Mac are insufficiently protected also.
Disk encryption on a Windows laptop is is a bit cumbersome compared to a MacBook. Microsoft offers Bitlocker, similar to FileVault in macOS, but there is a snag. You have different versions of Windows and Bitlocker is only available from Windows Pro and up. Most people at home have Windows Home and have to encrypt the disk in a different way. Veracrypt is a good alternative. This is an open source program and works somewhat similar to Bitlocker.
By enabling Bitlocker or Veracrypt, all data on the hard disk is encrypted, which means that they are not or difficult accessible for third parties. Another reason why a strong Windows password is important, it affects Bitlocker's encryption.
Bitlocker only works for hardware with a TPM (Trusted Platform Module) chip. You can check this on you laptop:
- Type Windows key + R (or start PowerShell)
- Type: tpm.msc
- A TPM windows opens. If it says "Compatible TPM cannot be found" then your PC doesn't have a TPM chip.
Interested in more about privacy and security? Check a href='https://watchyourhack.com/'>Watch your hack.
Download VeracryptWindows security and viruses
Windows Defender has become a decent alternative for separate anti-virus software such as Norton or McAfee. That's great because these programs canhave influence the performance of a PC or interfere with other programs. Of course you shouldn't download and install everything.
As a user you get insight into the status of the security in Windows and you can change the settings in "Settings" > "Update & Security" > "Windows Security". In the window that opens you see which components require your attentention.
To make things easier for the user, a number of options, such as a firewall, are turned on by default.
Opening files
Downloaded files, or received by email, such as PDF, Excel and Word can contain viruses or malware. Therefor it is safer to open PDF documents in a browser as Edge or Chrome instead of Adobe Acrobat Reader. If you have a Word or Excel document, you can open it in the browser in Google Docs or Sheets.
Dynamic lock
Lots of people don't lock their laptop when they walk away. This means that someone else can access files, install malicious software or make other changes. Locking your PC is easy with the keyboard shortcut "Windows key + L". Another option is that Windows automatically locks your PC when your phone is no longer in the around. This increases security without you having to do anything yourself.
You do this by following these steps:
- Connect a phone or tablet as a bluetooth device to your PC. This is done in: "Settings" > "Devices" > "Bluetooth & other devices" > tik op "Add bluetooth or other device".
- After connecting the device you go to: "Settings" > "Update & Security" > "Windows security" > "Account protection" and select "Dynamic lock".
Development
Linux (WSL)
Microsoft made a 360 under CEO, Satya Nadella, and that also applies to Windows. The current Microsoft has fully embraced Open Source and Linux as where the previous CEO, Steve Ballmer, compared Linux with cancer. These days you install Linux as a subsystem on your Windows PC and you can even download different Distros from the Windows Store. With the Linux option, Windows has become more attractive for many developers.
Linux on WindowsPackage managers
Many users (mostly the more technical people and developers) on Linux and macOS use Homebrew as a package manager, on Windows you have alternatives such as Scoop or Chocolately. The latter is one of the most popular. You install Chocolately with PowerShell. Open PowerShell as administrator and enter:
"Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
If you use WSL, you can also useHomebrew on Windows.
Code editors
Numerous code editors are available for Windows, including Visual Studio Be a code. There is a good chance that you will not have to adjust your workflow or only a little. Xcode is not avalaible.
About
windowsHacks is made by Wim Postma. You can send suggestions to<EMAIL_ADDRESS>or contact me on Twitter.


--- layout: default title: GoodData Visualization SDK ---
See other
SDKs
Take your data, transform it and create custom visualization. Let’s learn how to build chord chart that shows you how each sales person contributed to the quarter sales.
Build It NowComplete ExampleThe Visualization SDK is the library that allows you to push your Dashboard to the whole new level. The SDK helps you to integrate with libraries like D3.js, you can enrich your dashboard with your favourite custom visualization.
We have always been huge Javascript fans and had a ton of experience. We've built complete GoodData Web Application using Javascript. Anyway, we want to unleash everybody who is missing some part of GoodData and want to quickly build it. Tooling? You are in the best place to achieve what you need. You just need to know how to code in Javascript.


--- layout: default title: Furatto -Labels ---
Highlight important content, make notice of important announcements with labels or badges by adding the corresponding class name.
The markup to create labels is pretty straighforward, just add the label class to a span or anchor element and you are good to go. Yeah you could probably can add it into another but nothing fancy is really gonna happen.
Label
Label
Highlighting content is important, but to give a meaning is critical, that's why we provide 4 modifier class name which you can append to the label class elements.
Label
Label
Label
1
Don't like the default values?, yeah we get it, you can easily customize them with our sass variables.
//Label general settings
$label-padding: px-to-rems(3) px-to-rems(6) !default;
$label-font-size: px-to-rems(11) !default;
$label-font-weight: normal !default;
$label-font-color: #FFF !default;
$label-font-shadow-alpha: 0.20 !default;
$label-font-shadow-x: 0 !default;
$label-font-shadow-y: -1px !default;
$label-hover-decoration: none !default;
$label-default-background: #95A5A6 !default;
//Label variations
$label-radius: px-to-rems(3) !default;
$label-round: px-to-rems(1000) !default;
//Label background variations
$label-primary-background: #3498db !default;
$label-success-background: #2ecc71 !default;
$label-danger-background: #e74c3c !default;
$label-warning-background: #e67e22 !default;
Don't o the mood to use the built in labels, that's fair, we have included a mixin for you to create your own, check it out!
.my-super-label {
@include label;
}
Button
@mixin label($background-color: $label-default-background, $include-round: true, $include-radius: true) {
@include label-base;
@include label-style($background-color);
@if $include-round {
&.round { @include border-radius($label-round); }
}
@if $include-radius {
&.radius { @include border-radius($label-radius); }
}
}
Further usage...
For a more advance usage for creating labels, check out the _labels.scss file.


Our Philosophy
We are first and foremost a group of students concerned about the environmental, social, economic, and health impacts of our agro-food system. ASUW SFC members are a diverse group of students from a wide variety of disciplines and backgrounds, who've come together because we share a passion for improving our own health and the health of our planet through food. We value student autonomy and ensure that all decisions related to running the cooperative are made by students.
Our Pledge
TO SUPPORT access to healthy and affordable food for students
TO ACHIEVE freedom from an unsustainable food system
TO PROMOTE the UW Farm and other local growers
TO ENRICH student lives with experience in ethical practices
TO EDUCATE our community about local and sustainable food
TO BUILD a foundation for a collaborative food community on campus
TO CULTIVATE a thriving cooperative community that provides opportunities for student growth
Our Values - Sustainable
LOCAL — Sourcing local food is a sustainable practice that can greatly reduce the use of fossil fuels. We can help to ensure the growth of our local economy by purchasing fresh, seasonal products from local farmers whenever possible.
GROWING PRACTICES — We support farmers who grow food in a way that is harmonious with the environment. Ideally synthetic fertilizers, pesticides, herbicides, and hormone supplements are not used, which helps protect our land, our food, and our community from chemical pollution and contamination.
VEGETARIAN — We continue to uphold is the desire to provide healthy vegan and vegetarian meal options on campus. A vegan/vegetarian diet is more sustainable because the production of plant material requires less energy input per calorie produced than the production of meat.
Our Values - Ethical
The production of agricultural goods is crucial to the livelihood of a significant portion of the world. Unfortunately, many agricultural workers are treated and compensated unfairly within the industrial food system. We aim to source our food from organizations that adhere to policies that ensure fairness for producers. Additionally, the animals in the factory farm system live an extremely low quality of life that we do not justify as ethical. Therefore as a cooperative we choose not to consume meat. ASUW SFC believes in food sovereignty, as we recognize the inherent right of communities, businesses, and farmers to grow, sell, and eat food that is sustainably produced, healthy, humane, affordable, and accessible to everyone.
Our Values - Cooperative
We believe that community-driven, transparent, democratic organizations empower their members to enact social change and ultimately create a more sustainable, loving community. We are a cooperative organization that embraces the seven cooperative principles: voluntary and open membership, democratic management, participation, independence, education, cooperative, and community involvement.


|
Pip-Services-Rpc-Dotnet
|
Classes | |
| class | AboutOperations |
| class | CommandableHttpService |
| Abstract service that receives remove calls via HTTP/REST protocol to operations automatically generated for commands defined in ICommandable components. Each command is exposed as POST operation that receives all parameters in body object. More... | |
| class | CommandableSwaggerDocument |
| class | HeartbeatOperations |
| class | HeartbeatRestService |
| Service returns heartbeat via HTTP/REST protocol. More... | |
| class | HttpEndpoint |
| Used for creating HTTP endpoints. An endpoint is a URL, at which a given service can be accessed by a client. More... | |
| class | HttpResponseSender |
| Helper class that handles HTTP-based responses. More... | |
| class | Interceptor |
| interface | IRegisterable |
| Interface to perform on-demand registrations. More... | |
| interface | ISwaggerService |
| Interface to perform Swagger registrations. More... | |
| class | RestOperationParameters |
| class | RestOperations |
| class | RestService |
| Abstract service that receives remove calls via HTTP/REST protocol. More... | |
| class | StatusOperations |
| class | StatusRestService |
| Service that returns microservice status information via HTTP/REST protocol. More... | |


This operation cannot be undone.
Scope will be deleted, clients and users will not be able to use this scope as permission access.Scopes provide a way to limit the amount of access to a resource.
For example, users or client apps may be granted WRITE
access to restricted
resources, or just READ
access to public resources.


main
element
Skateboards
The skateboard is the way cool kids get around
Longboards
Longboards are a type of skateboard with a longer
wheelbase and larger, softer wheels.
Electric Skateboards
These no longer require the propelling of the skateboard
by means of the feet; rather an electric motor propels the board,
fed by an electric battery.
Code

Skateboards

The skateboard is the way cool kids get around

Longboards

Longboards are a type of skateboard with a longer
wheelbase and larger, softer wheels.

Electric Skateboards

These no longer require the propelling of the skateboard
by means of the feet; rather an electric motor propels the board,
fed by an electric battery.

Reference
HTML5 main element


Datasets formatted in CSV or JSON can be fetched remotely using the data module. This chart shows how a chart can also be configured to poll against the remote source.
data


Property based testing lifts the power of automated tests to a new level. You can find more bugs, and get more confidence on your code using it than with traditional unit tests.
LinqCheck is a property based testing library for C#. It implements all of the concepts present in QuickCheck, but instead of mimicking the API of QuickCheck it represents properties and generators as LINQ expressions.
Tutorials on how to use the library and information about the ideas behind it are available at:
https://johtela.github.io/LinqCheck/
The library targets .NET standard 2.0, and is distributed as a Nuget package which you can find in https://www.nuget.org.


#include <MinefieldResponseNackPdu.h>
Copyright (c) 2007-2009, MOVES Institute, Naval Postgraduate School. All rights reserved.
| MinefieldResponseNackPdu::MinefieldResponseNackPdu | ( | ) |
| MinefieldResponseNackPdu::~MinefieldResponseNackPdu | ( | ) | [virtual] |
| int MinefieldResponseNackPdu::getMarshalledSize | ( | ) | const [virtual] |
Reimplemented from DIS::MinefieldFamilyPdu.
| const EntityID & MinefieldResponseNackPdu::getMinefieldID | ( | ) | const |
| EntityID & MinefieldResponseNackPdu::getMinefieldID | ( | ) |
| const std::vector< EightByteChunk > & MinefieldResponseNackPdu::getMissingPduSequenceNumbers | ( | ) | const |
| std::vector< EightByteChunk > & MinefieldResponseNackPdu::getMissingPduSequenceNumbers | ( | ) |
| unsigned char MinefieldResponseNackPdu::getNumberOfMissingPdus | ( | ) | const |
| unsigned char MinefieldResponseNackPdu::getRequestID | ( | ) | const |
| const EntityID & MinefieldResponseNackPdu::getRequestingEntityID | ( | ) | const |
| EntityID & MinefieldResponseNackPdu::getRequestingEntityID | ( | ) |
| void MinefieldResponseNackPdu::marshal | ( | DataStream & | dataStream | ) | const [virtual] |
Reimplemented from DIS::MinefieldFamilyPdu.
| bool MinefieldResponseNackPdu::operator== | ( | const MinefieldResponseNackPdu & | rhs | ) | const |
| void MinefieldResponseNackPdu::setMinefieldID | ( | const EntityID & | pX | ) |
| void MinefieldResponseNackPdu::setMissingPduSequenceNumbers | ( | const std::vector< EightByteChunk > & | pX | ) |
| void MinefieldResponseNackPdu::setRequestID | ( | unsigned char | pX | ) |
| void MinefieldResponseNackPdu::setRequestingEntityID | ( | const EntityID & | pX | ) |
| void MinefieldResponseNackPdu::unmarshal | ( | DataStream & | dataStream | ) | [virtual] |
Reimplemented from DIS::MinefieldFamilyPdu.
EntityID DIS::MinefieldResponseNackPdu::_minefieldID [protected] |
Minefield ID
std::vector<EightByteChunk> DIS::MinefieldResponseNackPdu::_missingPduSequenceNumbers [protected] |
PDU sequence numbers that were missing
unsigned char DIS::MinefieldResponseNackPdu::_numberOfMissingPdus [protected] |
how many pdus were missing
unsigned char DIS::MinefieldResponseNackPdu::_requestID [protected] |
request ID
entity ID making the request


| Modifier and Type | Method and Description |
|---|---|
ResourceResolver |
AbstractSingleResolutionBuilder.build() |
protected ResourceResolver |
FileResolutionBuilder.createResolver() |
protected ResourceResolver |
StringResolutionBuilder.createResolver() |
protected abstract ResourceResolver |
AbstractSingleResolutionBuilder.createResolver() |
protected ResourceResolver |
ClassPathResolutionBuilder.createResolver() |
| Modifier and Type | Method and Description |
|---|---|
List<ResourceResolver> |
ResourceResolutionBuilderHelper.buildResolvers()
Build the list of resource resolvers.
|
| Modifier and Type | Method and Description |
|---|---|
StandaloneResourceResolutionBuilder<P> |
StandaloneResourceResolutionBuilder.resolver(ResourceResolver resolver) |
FLUENT |
ResourceResolutionBuilderHelper.resolver(ResourceResolver resolver) |
MYSELF |
ResourceResolutionBuilder.resolver(ResourceResolver resolver)
Register a custom resolver.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
DelegateResourceResolver |
interface |
RelativisableResourceResolver
Indicates that the
ResourceResolver can be decorated by
RelativeResolver . |
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractPrefixedLookupPathResolver
ResourceResolver using a list of supported lookups to compute a simple
ResolvedResourcePath where resolved path is simply the given path
without the lookup. |
class |
ClassPathResolver
Resource resolver that searches for the resource into the classpath.
|
class |
DefaultResourceResolver
Decorates an
AbstractPrefixedLookupPathResolver to manage a default
case (no lookup found). |
class |
FileResolver
Resource resolver that searches for the resource on the file system.
|
class |
FirstSupportingResourceResolver
Decorator that will ask each resource resolver if it is able to handle the
lookup.
|
class |
RelativeResolver
Decorator resource resolver that use parent path and extension for resource
resolution.
|
class |
StringResourceResolver
Resource resolver that just wraps the resource string into a
Resource |
| Modifier and Type | Method and Description |
|---|---|
ResourceResolver |
DelegateResourceResolver.getActualResourceResolver()
Finds the final delegated
ResourceResolver by any level of
delegation. |
ResourceResolver |
DefaultResourceResolver.getActualResourceResolver() |
ResourceResolver |
RelativeResolver.getActualResourceResolver() |
ResourceResolver |
ResourceResolverRegistry.getSupportingResolver(ResourcePath path)
Get a resource resolver that is able to handle a particular path.
|
ResourceResolver |
FirstSupportingResourceResolver.getSupportingResolver(ResourcePath path)
Find the first supporting resolver.
|
| Modifier and Type | Method and Description |
|---|---|
List<ResourceResolver> |
ResourceResolverRegistry.getResolvers()
Get the list of registered resolvers
|
List<ResourceResolver> |
FirstSupportingResourceResolver.getResolvers() |
| Modifier and Type | Method and Description |
|---|---|
ResourceResolverRegistry |
ResourceResolverRegistry.register(ResourceResolver resolver)
Register a resolver.
|
FirstSupportingResourceResolver |
FirstSupportingResourceResolver.register(ResourceResolver resolver)
Register a new resolver.
|
| Constructor and Description |
|---|
FirstSupportingResourceResolver(ResourceResolver... resolvers)
Initialize the decorator with the provided resource resolver
implementations.
|
| Constructor and Description |
|---|
FirstSupportingResourceResolver(List<ResourceResolver> resolvers)
Initialize the decorator with the provided resource resolver
implementations.
|
| Constructor and Description |
|---|
SimpleResourceEngineDetector(ResourceResolver resolver,
TemplateEngineDetector delegate)
The resolver is used to check if the resolved template from provided name
is a
SimpleResource . |
| Constructor and Description |
|---|
LookupResourceTranslator(ResourceResolver resolver) |
| Modifier and Type | Method and Description |
|---|---|
ImageInliningBuilder |
ImageInliningBuilder.resolver(ResourceResolver resolver) |
AttachmentHandlingBuilder |
AttachmentHandlingBuilder.resolver(ResourceResolver resolver) |
CssInliningBuilder |
CssInliningBuilder.resolver(ResourceResolver resolver) |
| Constructor and Description |
|---|
InlineCssTranslator(CssInliner cssInliner,
ResourceResolver resourceResolver,
RelativePathResolver relativePathProvider) |
InlineImageTranslator(ImageInliner inliner,
ResourceResolver resourceResolver,
MimeTypeProvider mimetypeProvider,
RelativePathResolver relativePathProvider) |
| Constructor and Description |
|---|
ExtensionMappingVariantResolver(ResourceResolver resourceResolver) |
ExtensionMappingVariantResolver(ResourceResolver resourceResolver,
Map<Variant,List<String>> mapping) |
| Modifier and Type | Method and Description |
|---|---|
ResourceResolver |
ResolverAdapterException.getResolver() |
| Constructor and Description |
|---|
NoResolverAdapterException(ResourceResolver resolver,
Throwable cause) |
NoResolverAdapterException(String message,
ResourceResolver resolver) |
NoResolverAdapterException(String message,
ResourceResolver resolver,
Throwable cause) |
ResolverAdapterConfigurationException(ResourceResolver resolver,
Throwable cause) |
ResolverAdapterConfigurationException(String message,
ResourceResolver resolver) |
ResolverAdapterConfigurationException(String message,
ResourceResolver resolver,
Throwable cause) |
ResolverAdapterException(ResourceResolver resolver,
Throwable cause) |
ResolverAdapterException(String message,
ResourceResolver resolver) |
ResolverAdapterException(String message,
ResourceResolver resolver,
Throwable cause) |
| Constructor and Description |
|---|
FreeMarkerParser(freemarker.template.Configuration configuration,
ResourceResolver resolver) |
FreeMarkerTemplateDetector(ResourceResolver resolver) |
FreeMarkerTemplateDetector(ResourceResolver resolver,
String... extensions) |
| Modifier and Type | Method and Description |
|---|---|
freemarker.cache.TemplateLoader |
TemplateLoaderAdapter.adapt(ResourceResolver resolver)
Adapts the general template resolver into the specific template loader.
|
freemarker.cache.TemplateLoader |
ClassPathResolverAdapter.adapt(ResourceResolver resolver) |
freemarker.cache.TemplateLoader |
StringResolverAdapter.adapt(ResourceResolver resolver) |
freemarker.cache.TemplateLoader |
FirstSupportingResolverAdapter.adapt(ResourceResolver resolver) |
freemarker.cache.TemplateLoader |
FileResolverAdapter.adapt(ResourceResolver resolver) |
boolean |
TemplateLoaderAdapter.supports(ResourceResolver resolver)
Is the adapter able to handle the general resolver.
|
boolean |
ClassPathResolverAdapter.supports(ResourceResolver resolver) |
boolean |
StringResolverAdapter.supports(ResourceResolver resolver) |
boolean |
FirstSupportingResolverAdapter.supports(ResourceResolver resolver) |
boolean |
FileResolverAdapter.supports(ResourceResolver resolver) |
| Modifier and Type | Method and Description |
|---|---|
protected List<ResourceResolver> |
AbstractFreemarkerBuilder.buildResolvers() |
| Modifier and Type | Method and Description |
|---|---|
MYSELF |
AbstractFreemarkerBuilder.resolver(ResourceResolver resolver) |
| Constructor and Description |
|---|
ThymeleafParser(org.thymeleaf.TemplateEngine engine,
ResourceResolver resolver) |
ThymeleafParser(org.thymeleaf.TemplateEngine engine,
ResourceResolver resolver,
ThymeleafContextConverter contextConverter) |
| Modifier and Type | Method and Description |
|---|---|
org.thymeleaf.templateresolver.ITemplateResolver |
ClassPathResolverAdapter.adapt(ResourceResolver resolver) |
org.thymeleaf.templateresolver.ITemplateResolver |
FirstSupportingResolverAdapter.adapt(ResourceResolver resolver) |
org.thymeleaf.templateresolver.ITemplateResolver |
TemplateResolverAdapter.adapt(ResourceResolver resolver)
Adapts the general template resolver into the Thymeleaf specific
resolver.
|
org.thymeleaf.templateresolver.ITemplateResolver |
FileResolverAdapter.adapt(ResourceResolver resolver) |
boolean |
ClassPathResolverAdapter.supports(ResourceResolver resolver) |
boolean |
FirstSupportingResolverAdapter.supports(ResourceResolver resolver) |
boolean |
TemplateResolverAdapter.supports(ResourceResolver resolver)
Is the adapter can handle the general resolver.
|
boolean |
FileResolverAdapter.supports(ResourceResolver resolver) |
| Modifier and Type | Method and Description |
|---|---|
MYSELF |
AbstractThymeleafBuilder.resolver(ResourceResolver resolver) |
| Constructor and Description |
|---|
ThymeleafV2TemplateDetector(ResourceResolver resolver) |
| Modifier and Type | Method and Description |
|---|---|
org.thymeleaf.templateresolver.ITemplateResolver |
FixClassPathResolverAdapter.adapt(ResourceResolver resolver) |
org.thymeleaf.templateresolver.ITemplateResolver |
StringResolverAdapter.adapt(ResourceResolver resolver) |
boolean |
FixClassPathResolverAdapter.supports(ResourceResolver resolver) |
boolean |
StringResolverAdapter.supports(ResourceResolver resolver) |
| Constructor and Description |
|---|
ThymeleafV3TemplateDetector(ResourceResolver resolver) |
| Modifier and Type | Method and Description |
|---|---|
org.thymeleaf.templateresolver.ITemplateResolver |
StringResolverAdapter.adapt(ResourceResolver resolver) |
boolean |
StringResolverAdapter.supports(ResourceResolver resolver) |
| Constructor and Description |
|---|
ResourceResolverAssertions(P parent,
Set<ResourceResolver> resourceResolvers) |
Copyright © 2020. All rights reserved.


new DiaryStandard(file, serialiseropt)
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
file |
Object | file contents, or object containing records
Properties
|
|||||||||||||||||
serialiser |
function |
<optional> |
function to serialise output |
- Source:
Example
let diary = new_sleep_diary(contents_of_my_file));
// print the minimum expected day duration in milliseconds:
console.log(diary.minimum_day_duration);
-> 12345
// print the maximum expected day duration in milliseconds:
console.log(diary.maximum_day_duration);
-> 23456
// Print the complete list of records
console.log(diary.records);
-> [
{
// DiaryStandardRecordStatus value, usually "awake" or "asleep"
status: "awake",
// start and end time (in milliseconds past the Unix epoch), estimated if the user forgot to log some data:
start: 12345678,
end: 23456789,
start_timezone: "Etc/GMT-1",
end_timezone: "Europe/Paris",
duration: 11111111, // or a falsey value if duration is unknown
// tags associated with this period:
tags: [
"tag 1",
"tag 2",
...
],
// comments recorded during this period:
comments: [
"comment with no associated timestamp",
{ time: 23456543, text: "timestamped comment" },
...
],
// (estimated) day this record is assigned to:
day_number: 1,
// true if the current day number is greater than the previous record's day number:
start_of_new_day: true,
// whether this value is the primary sleep for the current day number:
is_primary_sleep: false,
// this is set if it looks like the user forgot to log some data:
missing_record_after: true
},
...
]
// Print the user's current sleep/wake status:
console.log(diary.latest_sleep_status());
-> "awake"
// Print the user's sleep statistics:
console.log( diary.summarise_records( record => record.status == "asleep" ) );
-> {
average : 12345.678,
mean : 12356.789,
interquartile_mean : 12345.678,
standard_deviation: 12.56,
interquartile_standard_deviation: 12.45,
median : 12345,
interquartile_range : 12,
durations : [ undefined, 12345, null, ... ],
interquartile_durations : [ 10000, 10001 ... 19998, 19999 ],
}
// Print the user's day length statistics for the past 30 days:
let cutoff = new Date().getTime() - 1000*60*60*24*30;
console.log( diary.summarise_days( record => record.start > cutoff ) );
-> {
average : 12345.678,
mean : 12356.789,
interquartile_mean : 12345.678,
standard_deviation: 12.56,
interquartile_standard_deviation: 12.45,
median : 12345,
interquartile_range : 12,
durations : [ undefined, 12345, null, ... ],
interquartile_durations : [ 10000, 10001 ... 19998, 19999 ],
}
Extends
Members
"maximum_day_duration" :number
Maximum expected length for a day
We calculate skipped days by looking for "asleep" records at this far apart
Type:
- number
- Source:
"minimum_day_duration" :number
Minimum expected length for a day
We calculate day numbers by looking for "asleep" records at least this far apart.
Type:
- number
- Source:
"records" :Array.<DiaryStandardRecord>
Individual records from the sleep diary
Type:
- Array.<DiaryStandardRecord>
- Source:
serialiser :function
Serialise a value for output
Type:
- function
- Overrides:
- Source:
Methods
(protected) corrupt(file, message)
Indicates the file is a corrupt file in the specified format
Parameters:
| Name | Type | Description |
|---|---|---|
file |
string | Object | file contents, or filename/contents pairs (for archive files) |
message |
string | optional error message |
- Overrides:
- Source:
(protected) invalid(file)
Indicates the file is not valid in our file format
Parameters:
| Name | Type | Description |
|---|---|---|
file |
string | Object | file contents, or filename/contents pairs (for archive files) |
- Overrides:
- Source:
latest_sleep_status() → {string}
Latest sleep/wake status
- Source:
Returns:
"awake", "asleep" or "" (for an empty diary)
- Type
- string
merge(other)
Merge another diary into this one
Parameters:
| Name | Type | Description |
|---|---|---|
other |
DiaryBase | diary to merge in |
- Overrides:
- Source:
Example
diary.merge(my_data);
(protected) serialise()
Serialise data for output
- Overrides:
- Source:
summarise_days(filteropt) → {null|Object}
Summary statistics (based on records grouped by day_number)
Similar to DiaryStandard#summarise_records, but groups records by day_number.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
filter |
function |
<optional> |
only examine records that match this filter |
- Source:
- Tutorials:
- See:
Returns:
- Type
- null | Object
summarise_records(filteropt) → {null|Object}
Summary statistics (based on individual records)
Because real-world data tends to be quite messy, and because different users have different requirements, we provide several summaries for the data:
- average is the best guess at what the user would intuitively consider the average duration of a record. The exact calculation is chosen from the list below, and may change in future. It is currently the trimmed_mean. If you don't have any specific requirements, you should use this and ignore the others.
- mean and standard_deviation are traditional summary statistics for the duration, but are not recommended because real-world data tends to skew these values higher than one would expect.
- interquartile_mean and interquartile_standard_deviation produce more robust values in cases like ours, because they ignore the highest and lowest few records.
- median and interquartile_range produce more robust results, but tend to be less representative when there are only a few outliers in the data.
- durations and interquartile_durations are the raw values the other statistics were created from.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
filter |
function |
<optional> |
only examine records that match this filter |
- Source:
Returns:
- Type
- null | Object
to(to_format) → {*}
Convert a value to some other format
Parameters:
| Name | Type | Description |
|---|---|---|
to_format |
string | requested format |
- Overrides:
- Source:
Returns:
diary data in new format
- Type
- *
Example
let reformatted_diary = diary.to("NewFormat");