scatstat2 documentation
The scatstat2 function returns statistical values of all points within a given radius of each value. This is similar to taking a moving mean, but points do not need to be equally spaced.
See also scatstat1.
Back to Climate Data Tools Contents.
Contents
Syntax
zbar = scatstat2(x,y,z,radius) zbar = scatstat2(x,y,z,radius,fun) ybar = scatstat1(...,options)
Description
zbar = scatstat2(x,y,z,radius) returns the mean of all z values within specified radius at each point (x,y).
zbar = scatstat2(x,y,z,radius,fun) applies any function fun to z values, default fun is @mean, but it could be anything you want, even your own anonymous function.
zbar = scatstat2(...,options) allows any options that the function accepts. For example, 'omitnan'.
Example: Local median
Consider this noisy data set of 5000 scattered points:
N = 5000; x = randi(750,N,1); y = randi(750,N,1); % z contains *real* structure, plus lots of noise: z = sind(x) + cosd(y) + 3*randn(size(x)); scatter(x,y,10,z,'filled') axis image title 'noisy scattered 2D data'
It almost looks like there's nothing there but noise. Filter out the high-frequency noise by taking the local median within a 75 unit radius:
z_median = scatstat2(x,y,z,75,@median); scatter(x,y,10,z_median,'filled') axis image title 'local median'
Author info:
This function was written by Chad A. Greene of the University of Texas at Austin's Institute for Geophysics (UTIG), June 2016.


Home
Admin
Upload Image
View Images
Logout
S3 Image Upload
S3 Flask Image Gallery
Welcome!
Upload your file here:


{% extends "base.html" %} {% load static %} {% load tailwind_filters %} {% block title %}- Update Member {% endblock title %} {% block content %}
Personal Information about the new member
This information will be displayed publicly so be careful what you share.


Synopsys Lattice Technology Pre-mapping, Version maplat, Build 800R, Built Nov 18 2013 10:58:25 Copyright (C) 1994-2013, Synopsys, Inc. This software and the associated documentation are proprietary to Synopsys, Inc. This software may only be used in accordance with the terms and conditions of a written license agreement with Synopsys, Inc. All other use or distribution of the software is strictly prohibited. Product Version I-2013.09L Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 99MB peak: 100MB) Linked File: section6_TestFinalDesign_section6_TestFinalDesign_scck.rpt Printing clock summary report in "C:\lscc\diamond\3.1_x64\bin\nt64\Lab6_Test\section6_TestFinalDesign\section6_TestFinalDesign_section6_TestFinalDesign_scck.rpt" file @N:MF248 : | Running in 64-bit mode. @N:MF666 : | Clock conversion enabled Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 117MB) @N:MF236 : determinenum.v(19) | Generating a type div divider @N:MF236 : determinenum.v(18) | Generating a type div divider @N:MF236 : determinenum.v(18) | Generating a type div divider @N:MF237 : determinenum.v(17) | Generating a type rem remainder syn_allowed_resources : blockrams=26 set on top level netlist Sec6_Top Clock Summary ************** Start Requested Requested Clock Clock Clock Frequency Period Type Group ------------------------------------------------------------------------------------------------------------------------------------ Sec6_Top|clk_inferred_clock 1.0 MHz 1000.000 inferred Inferred_clkgroup_0 clock_counter|clk_o_derived_clock 1.0 MHz 1000.000 derived (from Sec6_Top|clk_inferred_clock) Inferred_clkgroup_0 ==================================================================================================================================== @W:MT529 : clock_counter.v(11) | Found inferred clock Sec6_Top|clk_inferred_clock which controls 16 sequential elements including counter_1.count[14:0]. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. Pre-mapping successful! At Mapper Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 79MB peak: 143MB) Process took 0h:00m:01s realtime, 0h:00m:01s cputime # Wed Jun 04 10:16:37 2014 ###########################################################]


Similar to vectors, you can use the square brackets [ ]
to select one or multiple elements from a matrix. Whereas vectors have one dimension, matrices have two dimensions. You should therefore use a comma to separate the rows you want to select from the columns. For example:
my_matrix[1,2]
selects the element at the first row and second column.my_matrix[1:3,2:4]
results in a matrix with the data on the rows 1, 2, 3 and columns 2, 3, 4.If you want to select all elements of a row or a column, no number is needed before or after the comma, respectively:
my_matrix[,1]
selects all elements of the first column.my_matrix[1,]
selects all elements of the first row.Back to Star Wars with this newly acquired knowledge! As in the previous exercise, all_wars_matrix
is already available in your workspace.
all_wars_matrix
), store the result as non_us_all
.mean()
on non_us_all
to calculate the average non-US revenue for all movies. Simply print out the result.all_wars_matrix
. Store the result as non_us_some
.mean()
again to print out the average of the values in non_us_some
.
load(url("http://s3.amazonaws.com/assets.datacamp.com/course/intro_to_r/all_wars_matrix.RData"))
# all_wars_matrix is available in your workspace
all_wars_matrix
# Select the non-US revenue for all movies
non_us_all <-
# Average non-US revenue
# Select the non-US revenue for first two movies
non_us_some <-
# Average non-US revenue for first two movies
# all_wars_matrix is available in your workspace
all_wars_matrix
# Select the non-US revenue for all movies
non_us_all <- all_wars_matrix[,2]
# Average non-US revenue
mean(non_us_all)
# Select the non-US revenue for first two movies
non_us_some <- all_wars_matrix[1:2,2]
# Average non-US revenue for first two movies
mean(non_us_some)
msg = "Do not change the contents of `all_wars_matrix`; this matrix has already been created for you in the workspace."
test_object("all_wars_matrix", undefined_msg = msg, incorrect_msg = msg)
test_object("non_us_all",
incorrect_msg = "Did you assign to `non_us_all` the entire second column of `all_wars_matrix`? You can use `[, 2]` to do this!")
test_output_contains("mean(non_us_all)",
incorrect_msg = "Have you calculated the average of the values in `non_us_all` by calling `mean(non_us_all)`? Simply print out the result.")
test_object("non_us_some",
incorrect_msg = "Did you assign to `non_us_some` the non-US revenue for the first two movies? You can use `[1:2,2]` to do this!")
test_output_contains("mean(non_us_some)",
incorrect_msg = "Have you calculated the average of the values in `non_us_some` by calling `mean(non_us_some)`? Simply print out the result.")
success_msg("Nice one! Continue to the next exercise.")
You can select the entire second column of a matrix my_matrix
with my_matrix[,2]
.


Description of my goal
I decided to make three duration goals to track how much time users spent on my website
- The first goal tracks anyone spending at least 30 seconds on my website
- The second goal tracks anyone spending at least one minute on my website
- The third goal tracks anyone spending at least five minutes on my website
I’m hoping this will let me analyze and compare the results of each goal. This will help me understand whether my blogs are really that interesting.
Making my goal available on my website
I went into the Google Analytics tool and went to Admin. Next I clicked on goals and the +goal button to create a new goal. I chose to create a custom goal because none of the templates fit my goal.
It was pretty easy to set it up by clicking duration and filling in the requested information.
Using funnels on my goal
I didn’t use a funnel because you need a URL in order to make one. Since I’m just doing duration goals, it does not apply.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34
35
36 package ti.sysbios;
37
38 import xdc.rov.ViewInfo;
39
40 import xdc.runtime.Error;
41 import xdc.runtime.Types;
42
43 /*! ======== BIOS ========
44 * SYS/BIOS Top-Level Manager
45 *
46 * This module is responsible for setting up global parameters
47 * pertaining to SYS/BIOS and for performing the SYS/BIOS startup
48 * sequence.
49 *
50 * SYS/BIOS configures the
51 * {@link xdc.runtime.Memory#defaultHeapInstance Memory.defaultHeapInstance}
52 * using a {@link ti.sysbios.heaps.HeapMem HeapMem} instance of size
53 * {@link #heapSize}.
54 *
55 * The SYS/BIOS startup sequence is logically divided into two phases: those
56 * operations that occur prior to the application's "main()" function being
57 * called, and those operations that are performed after the application's
58 * "main()" function is invoked.
59 *
60 * The "before main()" startup sequence is governed completely by the RTSC
61 * runtime package's {@link xdc.runtime.Startup Startup} module.
62 *
63 * The "after main()" startup sequence is governed by SYS/BIOS and is
64 * initiated by an explicit call to the {@link #start BIOS_start()} function
65 * at the end of the application's main() function.
66 *
67 * Control points are provided at various places in each of the two startup
68 * sequences for user startup operations to be inserted.
69 *
70 * The RTSC runtime startup sequence is as follows:
71 *
72 * @p(nlist)
73 * - Immediately after CPU reset, perform target-specific CPU
74 * initialization (beginning at c_int00).
75 * - Prior to cinit(), run the user-supplied "reset functions"
76 * (see {@link xdc.runtime.Reset#fxns Reset.fxns}).
77 * - Run cinit() to initialize C runtime environment.
78 * - Run the user-supplied "first functions"
79 * (see {@link xdc.runtime.Startup#firstFxns Startup.firstFxns}).
80 * - Run all the module initialization functions.
81 * - Run pinit().
82 * - Run the user-supplied "last functions"
83 * (see {@link xdc.runtime.Startup#lastFxns Startup.lastFxns}).
84 * - Run main().
85 * @p
86 *
87 * The SYS/BIOS startup sequence begins at the end of main() when
88 * BIOS_start() is called:
89 *
90 * @p(nlist)
91 * - Run the user-supplied "startup functions"
92 * (see {@link #startupFxns BIOS.startupFxns}).
93 * - Enable Hardware Interrupts.
94 * - Enable Software Interrupts. If the system supports Software Interrupts
95 * (Swis) (see {@link #swiEnabled BIOS.swiEnabled}), then the SYS/BIOS
96 * startup sequence enables Swis at this point.
97 * - Timer Startup. If the system supports Timers, then at this point all
98 * statically configured timers are initialized per their
99 * user-configuration.
100 * If a timer was configured to start "automatically", it is started here.
101 * - Task Startup. If the system supports Tasks
102 * (see {@link #taskEnabled BIOS.taskEnabled}),
103 * then task scheduling begins here. If there are no statically or
104 * dynamically created Tasks in the system, then execution proceeds
105 * directly to the Idle loop.
106 * @p
107 *
108 * @a(Note)
109 * Local variables defined in main() no longer exist once BIOS_start() is
110 * called. The RAM where main's local variables reside is reassigned for
111 * use as the interrupt stack during the execution of BIOS_start().
112 *
113 * Below is a configuration script excerpt that installs a user-supplied
114 * startup function at every possible control point in the RTSC and
115 * SYS/BIOS startup sequence:
116 *
117 * @p(code)
118 * // get handle to xdc Startup module
119 * var Startup = xdc.useModule('xdc.runtime.Startup');
120 *
121 * // install "reset function"
122 * Startup.resetFxn = '&myReset';
123 *
124 * // install a "first function"
125 * var len = Startup.firstFxns.length
126 * Startup.firstFxns.length++;
127 * Startup.firstFxns[len] = '&myFirst';
128 *
129 * // install a "last function"
130 * var len = Startup.lastFxns.length
131 * Startup.lastFxns.length++;
132 * Startup.lastFxns[len] = '&myLast';
133 *
134 * // get handle to SYS/BIOS module
135 * var BIOS = xdc.useModule('ti.sysbios.BIOS');
136 *
137 * // install a SYS/BIOS startup function
138 * BIOS.addUserStartupFunction('&myBiosStartup');
139 * @p
140 *
141 * @p(html)
142 *
 Calling Context

143 *

144 * <colgroup span="1"></colgroup> <colgroup span="5" align="center">
145 * </colgroup>
146 *
147 *
 Function 	 Hwi 	 Swi
148 *  Task 	 Main 	 Startup

149 *
150 *
 {@link #getCpuFreq} 	 Y 	 Y
151 *  Y 	 Y 	 Y

152 *
 {@link #getThreadType} 	 Y 	 Y
153 *  Y 	 Y 	 N

154 *
 {@link #setCpuFreq} 	 Y 	 Y
155 *  Y 	 Y 	 Y

156 *
 {@link #start} 	 N 	 N
157 *  N 	 Y 	 N

158 *
 Definitions:

159 *

160 *
 Hwi: API is callable from a Hwi thread.

161 *
 Swi: API is callable from a Swi thread.

162 *
 Task: API is callable from a Task thread.

163 *
 Main: API is callable during any of these phases:

164 *

165 *
 In your module startup after this module is started
166 * (e.g. BIOS_Module_startupDone() returns TRUE).

167 *
 During xdc.runtime.Startup.lastFxns.

168 *
 During main().

169 *
 During BIOS.startupFxns.

170 *

171 *
 Startup: API is callable during any of these phases:

172 *

173 *
 During xdc.runtime.Startup.firstFxns.

174 *
 In your module startup before this module is started
175 * (e.g. BIOS_Module_startupDone() returns FALSE).

176 *

177 *

178 *

179 *
180 *

181 * @p
182 */
183
184 @CustomHeader
185 @Template("./BIOS.xdt")
186
187 @DirectCall
188 module BIOS
189 {
190 /*!
191 * ======== ThreadType ========
192 * Current thread type definitions
193 *
194 * These values are returned by {@link #getThreadType BIOS_getThreadType}.
195 *
196 * @see #getThreadType
197 */
198 enum ThreadType {
199 ThreadType_Hwi, /*! Current thread is a Hwi */
200 ThreadType_Swi, /*! Current thread is a Swi */
201 ThreadType_Task, /*! Current thread is a Task */
202 ThreadType_Main /*! Current thread is Boot/Main */
203 };
204
205 /*!
206 * ======== RtsLockType ========
207 * Type of Gate to use in the TI RTS library
208 *
209 * @field(NoLocking) no gate is added to the RTS library. In this case,
210 * the application needs to be careful to always serialize access to the
211 * inherently non-reentrant ANSI C functions (such as `malloc()`,
212 * `printf()`, etc.).
213 *
214 * @field(GateHwi) Interrupts are disabled and restored to maintain
215 * re-entrancy. This is a very efficient lock but will also result in
216 * unbounded interrupt latency times. If real-time response to interrupts
217 * is important, you should not use this gate to lock the RTS library.
218 *
219 * @field(GateSwi) Swis are disabled and restored to maintain
220 * re-entrancy.
221 *
222 * @field(GateMutex) A single mutex is used to maintain re-entrancy.
223 *
224 * @field(GateMutexPri) A single priority inheriting mutex is used to
225 * maintain re-entrancy.
226 *
227 * @see #rtsGateType
228 */
229 enum RtsLockType {
230 NoLocking,
231 GateHwi,
232 GateSwi,
233 GateMutex,
234 GateMutexPri
235 };
236
237 /*!
238 * ======== LibType ========
239 * SYS/BIOS library selection options
240 *
241 * This enumeration defines all the SYS/BIOS library types
242 * supported by the product. You can select the library type by setting
243 * the {@link #libType BIOS.libType} configuration parameter.
244 *
245 * @field(LibType_Instrumented) The library is built with logging and
246 * assertions enabled.
247 *
248 * @field(LibType_NonInstrumented) The library is built with logging and
249 * assertions disabled.
250 *
251 * @field(LibType_Custom) The library is built using the options
252 * specified by {@link #customCCOpts}. Program optimization is performed
253 * to reduce the size of the executable and improve its performance.
254 * Enough debug information is retained to allow you to step through the
255 * application code in CCS and locate global variables.
256 *
257 * @field(LibType_Debug) This setting is similar to the LibType_Custom
258 * setting, however, no program optimization is performed. The resulting
259 * executable is fully debuggable, and you can step into SYS/BIOS code.
260 * The tradeoff is that the executable is larger and runs slower than
261 * builds that use the LibType_Custom option.
262 *
263 * @see #libType
264 */
265 enum LibType {
266 LibType_Instrumented, /*! Instrumented (Asserts and Logs enabled) */
267 LibType_NonInstrumented, /*! Non-instrumented (Asserts and Logs disabled) */
268 LibType_Custom, /*! Custom (Fully configurable) */
269 LibType_Debug /*! Debug (Fully configurable) */
270 };
271
272 /*! Used in APIs that take a timeout to specify wait forever */
273 const UInt WAIT_FOREVER = ~(0U);
274
275 /*! Used in APIs that take a timeout to specify no waiting */
276 const UInt NO_WAIT = 0U;
277
278 /*! User startup function type definition. */
279 typedef Void (*StartupFuncPtr)(Void);
280
281 /*!
282 * ======== ModuleView ========
283 * @_nodoc
284 */
285 metaonly struct ModuleView {
286 String currentThreadType[];
287 String rtsGateType;
288 Int cpuFreqLow;
289 Int cpuFreqHigh;
290 Bool clockEnabled;
291 Bool swiEnabled;
292 Bool taskEnabled;
293 String startFunc;
294 }
295
296 /*!
297 * ======== ErrorView ========
298 * @_nodoc
299 */
300 metaonly struct ErrorView {
301 String mod;
302 String tab;
303 String inst;
304 String field;
305 String message;
306 }
307
308 /*!
309 * ======== rovViewInfo ========
310 * @_nodoc
311 */
312 @Facet
313 metaonly config ViewInfo.Instance rovViewInfo =
314 ViewInfo.create({
315 viewMap: [
316 [
317 'Module',
318 {
319 type: ViewInfo.MODULE,
320 viewInitFxn: 'viewInitModule',
321 structName: 'ModuleView'
322 }
323 ],
324 [
325 'Scan for errors...',
326 {
327 type: ViewInfo.MODULE_DATA,
328 viewInitFxn: 'viewInitErrorScan',
329 structName: 'ErrorView'
330 }
331 ],
332 ]
333 });
334
335 /*!
336 * ======== libType ========
337 * SYS/BIOS Library type
338 *
339 * The SYS/BIOS runtime is built in the form of a library that is
340 * linked with your application. Several forms of this library are
341 * supported by the SYS/BIOS product. This configuration parameter
342 * allows you to select the form of the SYS/BIOS library to use.
343 *
344 * The default value of libType is
345 * {@link #LibType_Instrumented BIOS_LibType_Instrumented}. For a
346 * complete list of options and what they offer see {@link #LibType}.
347 */
348 metaonly config LibType libType = LibType_Instrumented;
349
350 /*!
351 * ======== customCCOpts ========
352 * Compiler options used when building a custom SYS/BIOS library
353 *
354 * When {@link #libType BIOS.libType} is set to
355 * {@link #LibType_Custom BIOS_LibType_Custom} or
356 * {@link #LibType_Debug BIOS_LibType_Debug},
357 * this string contains the options passed to the compiler during any
358 * build of the SYS/BIOS sources.
359 *
360 * In addition to the options specified by `BIOS.customCCOpts`, several
361 * `-D` and `-I` options are also passed to the compiler. The options
362 * specified by `BIOS.customCCOpts` are, however, the first options passed
363 * to the compiler on the command line.
364 *
365 * To view the custom compiler options, add the following line to your
366 * config script:
367 *
368 * @p(code)
369 * print(BIOS.customCCOpts);
370 * @p
371 *
372 * When {@link #libType BIOS.libType} is set to
373 * {@link #LibType_Custom BIOS_LibType_Custom},
374 * `BIOS.customCCOpts` is initialized to settings that create a highly
375 * optimized SYS/BIOS library.
376 *
377 * When {@link #libType BIOS.libType} is set to
378 * {@link #LibType_Debug BIOS_LibType_Debug},
379 * `BIOS.customCCOpts` is initialized to settings that create a
380 * non-optimized SYS/BIOS library that can be used to single-step through
381 * the APIs with the CCS debugger.
382 *
383 * More information about using `BIOS.customCCOpts` is provided in the
384 * {@link http://processors.wiki.ti.com/index.php/SYS/BIOS_FAQs SYS/BIOS FAQs}.
385 *
386 * @a(Warning)
387 * The default value of `BIOS.customCCOpts`, which is derived from the
388 * target specified by your configuration, includes runtime model options
389 * (such as endianess) that must be the same for all sources built and
390 * linked into your application. You must not change or add any options
391 * that can alter the runtime model specified by the default value of
392 * `BIOS.customCCOpts`.
393 *
394 * @a(Warning)
395 * Setting `BIOS.libType` overwrites `BIOS.customCCOpts`. Therefore, if an
396 * application's *.cfg file sets both these config params, the libType must
397 * be set before customCCOpts so the changes to customCCOpts persist.
398 */
399 metaonly config String customCCOpts;
400
401 /*!
402 * ======== includeXdcRuntime ========
403 * Include xdc.runtime sources in custom built library
404 *
405 * By default, the xdc.runtime library sources are not included in the
406 * custom SYS/BIOS library created for the application. Instead,
407 * the pre-built xdc.runtime library is provided by the respective target
408 * used to build the application.
409 *
410 * Setting this parameter to true will cause the xdc.runtime library
411 * sources to be included in the custom SYS/BIOS library. This setting
412 * yields the most efficient library in both code size and runtime
413 * performance.
414 */
415 metaonly config Bool includeXdcRuntime = false;
416
417 /*!
418 * ======== smpEnabled ========
419 * Enables multi core SMP task scheduling
420 *
421 * This functionality is available on only select multi-core devices.
422 *
423 * More information about SMP/BIOS is provided here:
424 * {@link http://processors.wiki.ti.com/index.php/SMP/BIOS SMP/BIOS}.
425 */
426 config Bool smpEnabled = false;
427
428 /*!
429 * ======== cpuFreq ========
430 * CPU frequency in Hz
431 *
432 * This configuration parameter allow SYS/BIOS to convert various
433 * periods between timer ticks (or instruction cycles) and real-time
434 * units. For example, timer periods expressed in micro-seconds need
435 * to be converted into timer ticks in order to properly program the
436 * timers.
437 *
438 * The default value of this parameter is obtained from the platform
439 * (the clockRate property of {@link xdc.cfg.Program#cpu Program.cpu})
440 * which is the CPU clock rate when the processor is reset.
441 *
442 * @a(Example)
443 * If CPU frequency is 720MHz, the following configuration script
444 * configures SYS/BIOS with the proper clock frequency:
445 * @p(code)
446 * var BIOS = xdc.useModule('ti.sysbios.BIOS');
447 * BIOS.cpuFreq.hi = 0;
448 * BIOS.cpuFreq.lo = 720000000;
449 * @p
450 */
451 config Types.FreqHz cpuFreq;
452
453 /*!
454 * ======== runtimeCreatesEnabled ========
455 * Runtime instance creation enable flag.
456 *
457 * true = Mod_create() & Mod_delete() callable at runtime
458 * false = Mod_create() & Mod_delete() not callable at runtime
459 */
460 config Bool runtimeCreatesEnabled = true;
461
462 /*!
463 * ======== taskEnabled ========
464 * SYS/BIOS Task services enable flag
465 *
466 * The following behaviors occur when {@link #taskEnabled} is
467 * set to false:
468 *
469 * @p(blist)
470 * - Static {@link ti.sysbios.knl.Task Task} creation will
471 * result in a fatal build error.
472 * - The Idle task object is not created.
473 * (The Idle functions are invoked within the {@link #start()}
474 * thread.)
475 * - Runtime calls to Task_create will trigger an assertion violation
476 * via {@link xdc.runtime.Assert#isTrue}.
477 * @p
478 */
479 config Bool taskEnabled = true;
480
481 /*!
482 * ======== swiEnabled ========
483 * SYS/BIOS Swi services enable flag
484 *
485 * The following behaviors occur when {@link #swiEnabled} is
486 * set to false:
487 *
488 * @p(blist)
489 * - Static {@link ti.sysbios.knl.Swi Swi} creation will
490 * result in a fatal build error.
491 * - See other effects as noted for {@link #clockEnabled} = false;
492 * - Runtime calls to Swi_create will trigger an assertion violation
493 * via {@link xdc.runtime.Assert#isTrue}.
494 * @p
495 */
496 config Bool swiEnabled = true;
497
498 /*!
499 * ======== clockEnabled ========
500 * SYS/BIOS Clock services enable flag
501 *
502 * The following behaviors occur when {@link #clockEnabled} is
503 * set to false:
504 *
505 * @p(blist)
506 * - Static Clock creation will result in a fatal build error.
507 * - No Clock Swi is created.
508 * - The {@link ti.sysbios.knl.Clock#tickSource Clock_tickSource}
509 * is set to
510 * {@link ti.sysbios.knl.Clock#TickSource_NULL Clock_TickSource_NULL}
511 * to prevent a Timer object from being created.
512 * - For APIs that take a timeout, values other than {@link #NO_WAIT}
513 * will be equivalent to {@link #WAIT_FOREVER}.
514 * @p
515 */
516 config Bool clockEnabled = true;
517
518 /*!
519 * ======== assertsEnabled ========
520 * SYS/BIOS Assert checking in Custom SYS/BIOS library enable flag
521 *
522 * When set to true, Assert checking code is compiled into
523 * the custom library created when {@link #libType BIOS.libType}
524 * is set to {@link #LibType_Custom BIOS_LibType_Custom} or
525 * {@link #LibType_Debug BIOS_LibType_Debug}.
526 *
527 * When set to false, Assert checking code is removed from the custom
528 * library created when BIOS.libType is set to BIOS.LibType_Custom
529 * or BIOS.LibType_Debug.
530 * This option can considerably improve runtime performance as well
531 * significantly reduce the application's code size.
532 *
533 * see {@link #libType BIOS.libType}.
534 */
535 metaonly config Bool assertsEnabled = true;
536
537 /*!
538 * ======== logsEnabled ========
539 * SYS/BIOS Log support in Custom SYS/BIOS library enable flag
540 *
541 * When set to true, SYS/BIOS execution Log code is compiled into
542 * the custom library created when {@link #libType BIOS.libType}
543 * is set to {@link #LibType_Custom BIOS_LibType_Custom} or
544 * {@link #LibType_Debug BIOS_LibType_Debug}.
545 *
546 * When set to false, all Log code is removed from
547 * the custom library created when BIOS.libType = BIOS.LibType_Custom
548 * or BIOS.LibType_Debug.
549 * This option can considerably improve runtime performance as well
550 * significantly reduce the application's code size.
551 *
552 * see {@link #libType BIOS.libType}.
553 *
554 * @a(Warning) Since interrupts
555 * are enabled when logs are generated, this setting will have the
556 * side effect of requiring task stacks to be sized large enough
557 * to absorb two interrupt contexts rather than one.
558 * See the discussion on task stacks in {@link ti.sysbios.knl.Task
559 * Task} for more information.
560 */
561 metaonly config Bool logsEnabled = true;
562
563 /*!
564 * ======== heapSize ========
565 * Size of system heap, units are in MAUs
566 *
567 * The system heap is, by default, used to allocate instance object
568 * state structures, such as {@link ti.sysbios.knl.Task Task} objects
569 * and their stacks, {@link ti.sysbios.knl.Semaphore Semaphore} objects,
570 * etc.
571 *
572 * If the application configuration does not set
573 * Memory.defaultHeapInstance, then SYS/BIOS will create a
574 * {@link ti.sysbios.heaps.HeapMem HeapMem} heap of this size. This
575 * heap will be assigned to
576 * {@link xdc.runtime.Memory#defaultHeapInstance Memory.defaultHeapInstance}
577 * and will therefore be used as the default system heap. This heap
578 * will also be used by the SYS/BIOS version of the standard C library
579 * functions malloc(), calloc() and free().
580 */
581 config SizeT heapSize = 0x1000;
582
583 /*!
584 * ======== heapSection ========
585 * Section to place the system heap
586 *
587 * This configuration parameter allows you to specify a named output
588 * section that will contain the SYS/BIOS system heap. The system heap
589 * is, by default, used to allocate {@link ti.sysbios.knl.Task Task}
590 * stacks and instance object state structures. So, giving this section
591 * a name and explicitly placing it via a linker command file can
592 * significantly improve system performance.
593 *
594 * If heapSection is `null` (or `undefined`) the system heap is placed
595 * in the target's default data section.
596 */
597 config String heapSection = null;
598
599 /*!
600 * ======== heapTrackEnabled ========
601 * Use HeapTrack with system default heap
602 *
603 * This configuration parameter will add a HeapTrack instance on top of
604 * the system heap. HeapTrack adds a tracker packet to every allocated
605 * buffer and displays the information in RTOS Object Viewer (ROV).
606 * An assert will be raised on a free if there was a buffer overflow.
607 */
608 config Bool heapTrackEnabled = false;
609
610 /*!
611 * ======== setupSecureContext ========
612 * @_nodoc
613 * Sets up a secure context when using secure version of BIOS
614 *
615 * This is available for some C66 secure devices only.
616 * This parameter take effect only when 'useSK' is set to true.
617 * If set to true, a call to Hwi_setupSC() is done in a last function.
618 */
619 config Bool setupSecureContext = false;
620
621 /*!
622 * ======== useSK ========
623 * @_nodoc
624 * use the secure version of BIOS
625 *
626 * This is available for some C66 secure devices only.
627 * This parameter can only be used with the custom build.
628 */
629 config Bool useSK = false;
630
631 /*!
632 * ======== rtsGateType ========
633 * Gate to make sure TI RTS library APIs are re-entrant
634 *
635 * The application gets to determine the type of gate (lock) that is used
636 * in the TI RTS library. The gate will be used to guarantee re-entrancy
637 * of the RTS APIs.
638 *
639 * The type of gate depends on the type of threads that are going to
640 * be calling into the RTS library. For example, if both Swi and Task
641 * threads are going to be calling the RTS library's printf, GateSwi
642 * should be used. In this case, Hwi threads are not impacted (i.e.
643 * disabled) during the printf calls from the Swi or Task threads.
644 *
645 * If NoLocking is used, the RTS lock is not plugged and re-entrancy for
646 * the TI RTS library calls are not guaranteed. The application can plug
647 * the RTS locks directly if it wants.
648 *
649 * Numerous gate types are provided by SYS/BIOS. Each has its advantages
650 * and disadvantages. The following list summarizes when each type is
651 * appropriate for protecting an underlying non-reentrant RTS library.
652 * @p(dlist)
653 * - {@link #GateHwi}:
654 * Interrupts are disabled and restored to maintain re-entrancy.
655 * Use if only making RTS calls from a Hwi, Swi and/or Task.
656 *
657 * - {@link #GateSwi}:
658 * Swis are disabled and restored to maintain re-entrancy. Use if
659 * only making RTS calls from a Swi and/or Task.
660 *
661 * - {@link #GateMutex}:
662 * A single mutex is used to maintain re-entrancy. Use if only
663 * making RTS calls from a Task. Blocks only Tasks that are
664 * also trying to execute critical regions of RTS library.
665 *
666 * - {@link #GateMutexPri}:
667 * A priority inheriting mutex is used to maintain re-entrancy.
668 * Blocks only Tasks that are also trying to execute critical
669 * regions of RTS library. Raises the priority of the Task that
670 * is executing the critical region in the RTS library to the
671 * level of the highest priority Task that is block by the mutex.
672 * @p
673 *
674 * The default value of rtsGateType depends on the type of threading
675 * model enabled by other configuration parameters.
676 * If {@link #taskEnabled} is true, {@link #GateMutex} is used.
677 * If {@link #swiEnabled} is true and {@link #taskEnabled} is false:
678 * {@link #GateSwi} is used.
679 * If both {@link #swiEnabled} and {@link #taskEnabled} are false:
680 * {@link xdc.runtime#GateNull} is used.
681 *
682 * If {@link #taskEnabled} is false, the user should not select
683 * {@link #GateMutex} (or other Task level gates). Similarly, if
684 * {@link #taskEnabled} and {@link #swiEnabled}are false, the user
685 * should not select {@link #GateSwi} or the Task level gates.
686 */
687 metaonly config RtsLockType rtsGateType;
688
689 /*!
690 * ======== startupFxns ========
691 * Functions to be executed at the beginning of BIOS_start()
692 *
693 * These user (or middleware) functions are executed before Hwis,
694 * Swis, and Tasks are started.
695 */
696 metaonly config StartupFuncPtr startupFxns[] = [];
697
698 /*!
699 * ======== version ========
700 * SYS/BIOS version number macro
701 *
702 * This macro has a hex value that represents the SYS/BIOS version
703 * number. The hex value has the version format 0xMmmpp, where
704 * M is a single digit Major number, mm is a 2 digit minor number
705 * and pp is a 2 digit patch number.
706 *
707 * Example: A macro hex value of 0x64501 implies that the SYS/BIOS
708 * product version number is 6.45.01
709 */
710 const UInt32 version = 0x68000;
711
712 /*!
713 * ======== addUserStartupFunction ========
714 * @_nodoc
715 * Statically add a function to the startupFxns table.
716 */
717 metaonly Void addUserStartupFunction(StartupFuncPtr func);
718
719 /*!
720 * ======== linkedWithIncorrectBootLibrary ========
721 * Application was linked with incorrect Boot library
722 *
723 * This function has a loop that spins forever. If execution
724 * reaches this function, it indicates that the application
725 * was linked with an incorrect boot library and the XDC
726 * runtime startup functions did not get run. This can happen
727 * if the code gen tool's RTS library was before SYS/BIOS's
728 * generated linker cmd file on the link line.
729 */
730 Void linkedWithIncorrectBootLibrary();
731
732 /*!
733 * ======== start ========
734 * Start SYS/BIOS
735 *
736 * The user's main() function is required to call this function
737 * after all other user initializations have been performed.
738 *
739 * This function does not return.
740 *
741 * This function performs any remaining SYS/BIOS initializations
742 * and then transfers control to the highest priority ready
743 * task if {@link #taskEnabled} is true. If {@link #taskEnabled}
744 * is false, control is transferred directly to the Idle Loop.
745 *
746 * The SYS/BIOS start sequence is as follows:
747 * @p(blist)
748 * - Invoke all the functions in the {@link #startupFxns} array.
749 * - call {@link ti.sysbios.hal.Hwi#enable Hwi_startup()}
750 * to enable interrupts.
751 * - if {@link #swiEnabled} is true, call
752 * {@link ti.sysbios.knl.Swi#enable Swi_startup()} to enable
753 * the Swi scheduler.
754 * - Start any statically created or constructed Timers
755 * in the {@link ti.sysbios.hal.Timer#StartMode Timer_StartMode_AUTO}
756 * mode.
757 * - if {@link #taskEnabled} is true, enable the Task scheduler
758 * and transfer the execution thread to the highest priority
759 * task in the {@link ti.sysbios.knl.Task#Mode Task_Mode_READY}
760 * mode.
761 * - Otherwise, fall directly into the Idle Loop.
762 * @p
763 *
764 */
765 Void start();
766
767 /*!
768 * ======== exit ========
769 * Exit currently running SYS/BIOS executable
770 *
771 * This function is called when a SYS/BIOS executable needs to terminate
772 * normally. This function sets the internal SYS/BIOS threadType to
773 * {@link #ThreadType_Main} and then calls
774 * {@link xdc.runtime.System#exit System_exit}(stat), passing along
775 * the 'stat' argument.
776 *
777 * All functions bound via
778 * `{@link xdc.runtime.System#atexit System_atexit}` or the ANSI C
779 * Standard Library `atexit` function are then executed.
780 *
781 * @param(stat) exit status to return to calling environment.
782 */
783 Void exit(Int stat);
784
785 /*!
786 * ======== getThreadType ========
787 * Get the current thread type
788 *
789 * @b(returns) Current thread type
790 */
791 ThreadType getThreadType();
792
793 /*!
794 * @_nodoc
795 * ======== setThreadType ========
796 * Set the current thread type
797 *
798 * Called by the various threadType owners.
799 *
800 * @param(ttype) New thread type value
801 * @b(returns) Previous thread type
802 */
803 ThreadType setThreadType(ThreadType ttype);
804
805 /*!
806 * ======== setCpuFreq ========
807 * Set CPU Frequency in Hz
808 *
809 * This API is not thread safe. Please use appropriate locks.
810 */
811 Void setCpuFreq(Types.FreqHz *freq);
812
813 /*!
814 * ======== getCpuFreq ========
815 * Get CPU frequency in Hz
816 *
817 * This API is not thread safe. Please use appropriate locks.
818 */
819 Void getCpuFreq(Types.FreqHz *freq);
820
821 /*!
822 * @_nodoc
823 * ======== getCpuFrequency ========
824 * Get CPU frequency in Hz.
825 *
826 * This function is currently used by UIA and is called in the
827 * UIAMetaData validate() function.
828 * NOTE: Javascript does not support UInt64, so this only works
829 * if the frequency is less than 4GHz. Keep this function for
830 * backwards compatibility (for awhile).
831 */
832 metaonly UInt64 getCpuFrequency();
833
834 /*!
835 * @_nodoc
836 * ======== getCpuFreqMeta ========
837 * Get CPU frequency in Hz.
838 *
839 * This function is currently used by UIA and is called in the
840 * UIAMetaData validate() function.
841 */
842 metaonly Types.FreqHz getCpuFreqMeta();
843
844 /*!
845 * @_nodoc
846 * ======== getTimestampFrequency ========
847 * Get timestamp frequency in Hz. If we don't know the timestamp
848 * frequency of the device, return 0.
849 *
850 * This function is currently used by UIA and is called in the
851 * UIAMetaData validate() function.
852 * NOTE: Javascript does not support UInt64, so this only works
853 * if the frequency is less than 4GHz. Keep this function for
854 * backwards compatability (for awhile).
855 */
856 metaonly UInt64 getTimestampFrequency();
857
858 /*!
859 * @_nodoc
860 * ======== getTimestampFreqMeta ========
861 * Get timestamp frequency in Hz. If we don't know the timestamp
862 * frequency of the device, return 0.
863 *
864 * This function is currently used by UIA and is called in the
865 * UIAMetaData validate() function.
866 */
867 metaonly Types.FreqHz getTimestampFreqMeta();
868
869 /*!
870 * @_nodoc
871 * ======== getDefaultTimestampProvider ========
872 * Returns the name of the TimestampProvider module BIOS will set
873 * xdc.runtime.Timestamp.SupportProxy to if it hasn't been configured
874 * in the user's config script.
875 *
876 * This function is meant to be used by modules that have their own
877 * TimestampProvider proxies if they want to initialize them to the
878 * default xdc.runtime.Timestamp.SupportProxy binding selected by BIOS:
879 *
880 * if (!this.$written("TimestampProxy")) {
881 * if (xdc.runtime.$written("Timestamp.SupportProxy") {
882 * this.TimestampProxy = xdc.runtime.Timestamp.SupportProxy;
883 * }
884 * else {
885 * this.TimestampProxy = xdc.module(BIOS.getDefaultTimestampProvider());
886 * }
887 * }
888 */
889 metaonly String getDefaultTimestampProvider();
890
891 internal:
892
893 894 895 896 897 898 899
900 metaonly config Bool buildingAppLib = true;
901
902 903 904 905
906 metaonly config String libDir = null;
907
908 909 910 911 912 913 914 915 916
917 metaonly config Bool codeCoverageEnabled = false;
918
919 920 921 922
923 metaonly String getCCOpts(String target);
924
925 926 927 928
929 struct intSize {
930 Int intSize;
931 }
932
933 934 935 936 937 938
939 metaonly config Char bitsPerInt;
940
941 942 943 944 945 946 947 948
949 config Void (*installedErrorHook)(Error.Block *);
950
951 952 953 954 955
956 Void errorRaiseHook(Error.Block *eb);
957
958 959 960 961
962 Void startFunc();
963
964 965 966 967
968 Void atExitFunc(Int stat);
969
970 971 972 973
974 Void exitFunc(Int stat);
975
976 977 978 979 980 981
982 Void registerRTSLock();
983
984 985 986 987 988 989
990 Void removeRTSLock();
991
992 993 994 995
996 Void rtsLock();
997
998 999 1000 1001
1002 Void rtsUnlock();
1003
1004 1005 1006
1007 Void nullFunc();
1008
1009 1010 1011
1012 function fireFrequencyUpdate(newFreq);
1013
1014 1015 1016 1017
1018 proxy RtsGateProxy inherits xdc.runtime.IGateProvider;
1019
1020 1021 1022 1023
1024 typedef Void (*StartFuncPtr)(void);
1025
1026 1027 1028 1029
1030 typedef Void (*ExitFuncPtr)(Int);
1031
1032 1033 1034
1035 struct Module_State {
1036 Types.FreqHz cpuFreq;
1037 UInt rtsGateCount;
1038 IArg rtsGateKey;
1039 RtsGateProxy.Handle rtsGate;
1040 ThreadType threadType;
1041
1042 ThreadType smpThreadType[];
1043
1044 volatile StartFuncPtr startFunc;
1045 volatile ExitFuncPtr exitFunc;
1046 };
1047 }


<nui-icon>
, as the name implies, allows you to display an icon.
NuiIconModule
To use <nui-icon>
you can set the icon
input to the id of one of the available icon
provided as part of Nova. See the Available Icons section on this page.
To override the default size of <nui-icon>
, set the size
input to the string values "small" (12px) or "medium" (20px).
By default size
is set to "default" (16px).
The color of <nui-icon>
can be set by passing one of the following color string values to the iconColor
input: "white", "light-blue", "gray", "disabled-gray", "primary-blue", or "orange".
To set the hover color of <nui-icon>
pass one of the following color string values to the iconHoverColor
input: "white", "light-blue", "gray", "disabled-gray", "primary-blue", or "orange".
<nui-icon>
can display a status sub-icon. Available values for the status
input can be found in the enum IconStatus
.
You can also pass a string value of an appropriate status in enum e.g. status="critical"
<nui-icon>
can display a status sub-icon with child status. Available values for the childStatus
input can be found in the enum IconStatus
.
You can also pass a string value of an appropriate status in enum e.g. childStatus="critical"
The example below demonstrates how to align text with the icon.
To apply a counter badge to the icon, set the counter
input to a valid integer.


Artical heading
Artical: This is sample artical
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.


Customize website’s scrollbar with CSS
Three lines of CSS code can make your website’s scrollbar looks like Mac OS’s one
Although scrollbar has just small area on the web browser, to me — as interface designer — it’s not that tiny, nor okay to ignore. If you’re true nerd that care about every details, this short tutorial would be helpful for you.
Start off
To customize your website’s scrollbar, there’s only few lines of code in your stylesheet needed. You don’t even need to write JavaScript to customize it! Following code snippet shows CSS code to customize web browser’s scrollbar.
Customizing web browser’s scrollbar is non standard method to styling, so you need to use -webkit- vendor prefix to use pseudo-elements above. Only Webkit browsers(e.g., Chrome, Safari) support this properties. Other browsers like Firefox or IE don’t support this method.
Pseudo-Elements
You can use 7 different pseudo-elements to customize web browser’s scrollbar. See the code snippet below:
I used ::-webkit-scrollbar, ::-webkit-scrollbar-track and ::-webkit-scrollbar-thumb for this tutorial. Each properties need value inside the brackets.
CodePen
See how it works on CodePen below. If you try this code on IE or Firefox, this code will not run and JavaScript will return alternative text on div box.
See the Pen customize-scrollbar by Hyouk Seo (@Spemer) on CodePen.
From my stylesheet
I wrote only three lines of CSS code to customize my website’s scrollbar. These methods don’t need a single line of JavaScript code, super simple and easy to use. Check out link below to watch on live website!
See live version on my website, or check my CSS code on my GitHub
Applications
If you’re using GitHub Gist code snippets on your own website, It’s available to customize it’s scrollbar either like image below. We can apply this method anywhere if we know the classname or ID of the elements, which we’re going to customize them.
Gist’s code snippet uses classname .blob-wrapper for it’s scrollbar, so we can customize it with that. Copy and paste the CSS code above will make your Gist code snippet’s scrollbar just like the image above.
Can I use?
At this point in my writing this article today(January 5, 2018), search result on caniuse.com says 87.07% of browsers support for ::-webkit-scrollbar pseudo-elements. You can check the latest report on caniuse.com.
Again, this method only works on Webkit browsers with vendor prefix, *NOT* working on the other browsers. Thank you for reading my article, hope you enjoyed.
Title : Customize website’s scrollbar with CSS
Date : January 5, 2018
Writer : Hyouk Seo (Spemer)


The choice set to be displayed to the user. Contains a list of selectable options.
Set this to change the default timeout for all choice sets. If a timeout is not set on an individual choice set object (or if it is set to 0.0), then it will use this timeout instead. See timeout
for more details. If this is not set by you, it will default to 10 seconds. The minimum is 5 seconds, the maximum is 100 seconds. If this is set below the minimum, it will be capped at 5 seconds. If this is set above the maximum, it will be capped at 100 seconds.
@property (class, nonatomic) NSTimeInterval defaultTimeout;
class var defaultTimeout: TimeInterval { get set }
Set this to change the default layout for all choice sets. If a layout is not set on an individual choice set object, then it will use this layout instead. See layout
for more details. If this is not set by you, it will default to SDLChoiceSetLayoutList
.
@property (class, nonatomic) SDLChoiceSetLayout defaultLayout;
class var defaultLayout: SDLChoiceSetLayout { get set }
Maps to PerformInteraction.initialText. The title of the choice set, and/or the initial text on a keyboard prompt.
@property (nonatomic, copy) NSString *_Nonnull title;
var title: String { get set }
Maps to PerformInteraction.initialPrompt. The initial prompt spoken to the user at the start of an interaction.
@property (nonatomic, copy, nullable) NSArray<SDLTTSChunk *> *initialPrompt;
var initialPrompt: [SDLTTSChunk]? { get set }
Maps to PerformInteraction.interactionLayout. Whether the presented choices are arranged as a set of tiles or a list.
@property (nonatomic) SDLChoiceSetLayout layout;
var layout: SDLChoiceSetLayout { get set }
Maps to PerformInteraction.timeout. Timeout in seconds. Defaults to 0, which will use defaultTimeout
. If this is set below the minimum, it will be capped at 5 seconds. Minimum 5 seconds, maximum 100 seconds. If this is set above the maximum, it will be capped at 100 seconds. Defaults to 0.
Note
This applies only to a manual selection (not a voice selection, which has its timeout handled by the system).@property (nonatomic) NSTimeInterval timeout;
var timeout: TimeInterval { get set }
Maps to PerformInteraction.timeoutPrompt. This text is spoken when a VR interaction times out. If this set is presented in a manual (non-voice) only interaction, this will be ignored.
@property (nonatomic, copy, nullable) NSArray<SDLTTSChunk *> *timeoutPrompt;
var timeoutPrompt: [SDLTTSChunk]? { get set }
Maps to PerformInteraction.helpPrompt. This is the spoken string when a user speaks “help” when the interaction is occurring.
@property (nonatomic, copy, nullable) NSArray<SDLTTSChunk *> *helpPrompt;
var helpPrompt: [SDLTTSChunk]? { get set }
Maps to PerformInteraction.vrHelp. This is a list of help text presented to the user when they are in a voice recognition interaction from your choice set of options. If this set is presented in a touch only interaction, this will be ignored.
Note
that while SDLVRHelpItem’s position will be automatically set based on position in the array, the image will need to uploaded by you before use using SDLFileManager.@property (nonatomic, copy, nullable) NSArray<SDLVRHelpItem *> *helpList;
var helpList: [SDLVRHelpItem]? { get set }
The delegate of this choice set, called when the user interacts with it.
@property (nonatomic, weak) id<SDLChoiceSetDelegate> _Nullable delegate;
The choices to be displayed to the user within this choice set. These choices could match those already preloaded via SDLScreenManager preloadChoices:withCompletionHandler:
.
This is limited to 100 items. If you attempt to set more than 100 items, the set will not have any items (this array will be empty).
@property (nonatomic, copy) NSArray<SDLChoiceCell *> *_Nonnull choices;
var choices: [SDLChoiceCell] { get set }
Initialize with a title, delegate, and choices. It will use the default timeout and layout, all other properties (such as prompts) will be nil
.
WARNING: If you display multiple cells with the same text
with the only uniquing property between cells being different vrCommands
or a feature that is not displayed on the head unit (e.g. if the head unit doesn’t display secondaryArtwork
and that’s the only uniquing property between two cells) then the cells may appear to be the same to the user in Manual
mode. This only applies to RPC connections >= 7.1.0.
WARNING: On < 7.1.0 connections, the text
cell will be automatically modified among cells that have the same text
when they are preloaded, so they will always appear differently on-screen when they are displayed. cell.uniqueText
will be created by appending (2)
, (3)
, etc.
- (nonnull instancetype)init;
init()
Initialize with a title, delegate, and choices. It will use the default timeout and layout, all other properties (such as prompts) will be nil
.
WARNING: If you display multiple cells with the same text
with the only uniquing property between cells being different vrCommands
or a feature that is not displayed on the head unit (e.g. if the head unit doesn’t display secondaryArtwork
and that’s the only uniquing property between two cells) then the cells may appear to be the same to the user in Manual
mode. This only applies to RPC connections >= 7.1.0.
WARNING: On < 7.1.0 connections, the text
cell will be automatically modified among cells that have the same text
when they are preloaded, so they will always appear differently on-screen when they are displayed. cell.uniqueText
will be created by appending (2)
, (3)
, etc.
- (nonnull instancetype)initWithTitle:(nonnull NSString *)title
delegate:(nonnull id<SDLChoiceSetDelegate>)delegate
choices:
(nonnull NSArray<SDLChoiceCell *> *)choices;
The choice set’s title
The choice set delegate called after the user has interacted with your choice set
The choices to be displayed to the user for interaction
The choice set
Initializer with all possible properties.
WARNING: If you display multiple cells with the same text
with the only uniquing property between cells being different vrCommands
or a feature that is not displayed on the head unit (e.g. if the head unit doesn’t display secondaryArtwork
and that’s the only uniquing property between two cells) then the cells may appear to be the same to the user in Manual
mode. This only applies to RPC connections >= 7.1.0.
WARNING: On < 7.1.0 connections, the text
cell will be automatically modified among cells that have the same text
when they are preloaded, so they will always appear differently on-screen when they are displayed. cell.uniqueText
will be created by appending (2)
, (3)
, etc.
- (nonnull instancetype)
initWithTitle:(nonnull NSString *)title
delegate:(nonnull id<SDLChoiceSetDelegate>)delegate
layout:(SDLChoiceSetLayout)layout
timeout:(NSTimeInterval)timeout
initialPromptString:(nullable NSString *)initialPrompt
timeoutPromptString:(nullable NSString *)timeoutPrompt
helpPromptString:(nullable NSString *)helpPrompt
vrHelpList:(nullable NSArray<SDLVRHelpItem *> *)helpList
choices:(nonnull NSArray<SDLChoiceCell *> *)choices;
The choice set’s title
The choice set delegate called after the user has interacted with your choice set
The layout of choice options (Manual/touch only)
The timeout of a touch interaction in seconds (Manual/touch only)
A voice prompt spoken to the user when this set is displayed
A voice prompt spoken to the user when the set times out (Voice only)
A voice prompt spoken to the user when the user asks for “help”
A table list of text and images shown to the user during a voice recognition session for this choice set (Voice only)
The list of choices presented to the user either as a manual/touch interaction or via the user’s voice
The choice set
Initializer with all possible properties.
WARNING: If you display multiple cells with the same text
with the only uniquing property between cells being different vrCommands
or a feature that is not displayed on the head unit (e.g. if the head unit doesn’t display secondaryArtwork
and that’s the only uniquing property between two cells) then the cells may appear to be the same to the user in Manual
mode. This only applies to RPC connections >= 7.1.0.
WARNING: On < 7.1.0 connections, the text
cell will be automatically modified among cells that have the same text
when they are preloaded, so they will always appear differently on-screen when they are displayed. cell.uniqueText
will be created by appending (2)
, (3)
, etc.
- (nonnull instancetype)
initWithTitle:(nonnull NSString *)title
delegate:(nonnull id<SDLChoiceSetDelegate>)delegate
layout:(SDLChoiceSetLayout)layout
timeout:(NSTimeInterval)timeout
initialPrompt:(nullable NSArray<SDLTTSChunk *> *)initialPrompt
timeoutPrompt:(nullable NSArray<SDLTTSChunk *> *)timeoutPrompt
helpPrompt:(nullable NSArray<SDLTTSChunk *> *)helpPrompt
vrHelpList:(nullable NSArray<SDLVRHelpItem *> *)helpList
choices:(nonnull NSArray<SDLChoiceCell *> *)choices;
The choice set’s title
The choice set delegate called after the user has interacted with your choice set
The layout of choice options (Manual/touch only)
The timeout of a touch interaction in seconds (Manual/touch only)
A voice prompt spoken to the user when this set is displayed
A voice prompt spoken to the user when the set times out (Voice only)
A voice prompt spoken to the user when the user asks for “help”
A table list of text and images shown to the user during a voice recognition session for this choice set (Voice only)
The list of choices presented to the user either as a manual/touch interaction or via the user’s voice
The choice set
Cancels the choice set. If the choice set has not yet been sent to Core, it will not be sent. If the choice set is already presented on Core, the choice set will be immediately dismissed. Canceling an already presented choice set will only work if connected to Core versions 6.0+. On older versions of Core, the choice set will not be dismissed.
- (void)cancel;
func cancel()


multiline-canvas-text
Render a string to canvas, breaking it up into multiple lines to fit the given width.
fillText
strokeText
left
center
right
width:
font size:
line spacing:


pgmbentley(1) pgmbentley(1) NAME pgmbentley - Bentleyize a portable graymap SYNOPSIS pgmbentley [pgmfile] DESCRIPTION Reads a portable graymap as input. Performs The Bentley Effect, and writes a portable graymap as output. The Bentley Effect is described in "Beyond Photography" by Holzmann, chapter 4, photo 4. It's a vertical smearing based on brightness. SEE ALSO pgmoil(1), ppmrelief(1), pgm(5) AUTHOR Copyright (C) 1990 by Wilson Bent<EMAIL_ADDRESS>11 January 1991 pgmbentley(1)


load()
methods
of the Loader, URLStream, and URLLoader classes, and to other loading
operations, to initiate URL downloads. They are also passed to the
upload()
and download()
methods of the
FileReference class.
A SWF file in the local-with-filesystem sandbox may not load data from, or provide data to, a resource that is in the network sandbox.
By default, the calling SWF file and the URL you load must be in the same domain. For example, a SWF file at www.adobe.com can load data only from sources that are also at www.adobe.com. To load data from a different domain, place a URL policy file on the server hosting the data.
However, in Adobe AIR, content in the application security sandbox (content installed with the AIR application) is not restricted by these security limitations. For content running in Adobe AIR, files in the application security sandbox can access URLs using any of the following URL schemes:
http
and https
file
app-storage
app
Content running in Adobe AIR that is not in the application security sandbox observes the same restrictions as content running in the browser (in Flash Player), and loading is governed by the content's domain and any permissions granted in URL policy files.
For more information related to security, see the Flash Player Developer Center Topic: Security.
url
The URL to be requested. You can set the URL later by using the url
property.data
property.
The default value is
application/x-www-form-urlencoded
.
Note:The FileReference.upload()
,
FileReference.download()
, and HTMLLoader.load()
methods do not support the URLRequest.contentType
property.
When sending a POST request, the values of the contentType
and data
properties must correspond properly. The value of
the contentType
property instructs servers on how to
interpret the value of the data
property.
data
property is a URLVariables
object, the value of contentType
must be
application/x-www-form-urlencoded
. data
property is any other type,
the value of contentType
should indicate the type of the POST
data that will be sent(which is the binary or string data contained in
the value of the data
property). FileReference.upload()
, the Content-Type of the
request is set automatically to multipart/form-data
, and the
value of the contentType
property is ignored.In Flash Player 10 and later, if you use a multipart Content-Type(for example "multipart/form-data") that contains an upload(indicated by a "filename" parameter in a "content-disposition" header within the POST body), the POST operation is subject to the security rules applied to uploads:
Also, for any multipart Content-Type, the syntax must be valid (according to the RFC2046 standards). If the syntax appears to be invalid, the POST operation is subject to the security rules applied to uploads.
This property is used in conjunction with the method
property. When the value of method
is GET
, the
value of data
is appended to the value of
URLRequest.url
, using HTTP query-string syntax. When the
method
value is POST
(or any value other than
GET
), the value of data
is transmitted in the
body of the HTTP request.
The URLRequest API offers binary POST
support and support
for URL-encoded variables, as well as support for strings. The data object
can be a ByteArray, URLVariables, or String object.
The way in which the data is used depends on the type of object used:
POST
data. For GET
,
data of ByteArray type is not supported. Also, data of ByteArray type is
not supported for FileReference.upload()
and
FileReference.download()
.POST
, the variables are encoded using
x-www-form-urlencoded format and the resulting string is used as
POST
data. An exception is a call to
FileReference.upload()
, in which the variables are sent as
separate fields in a multipart/form-data
post.GET
, the URLVariables object defines variables to be sent
with the URLRequest object.POST
or GET
data.This data is not sent until a method, such as
navigateToURL()
or FileReference.upload()
, uses
the URLRequest object.
Note: The value of contentType
must correspond to
the type of data in the data
property. See the note in the
description of the contentType
property.
The digest is based on an SHA-256 message digest algorithm(64 characters long in hexadecimal format).
For example, the Flex SDK includes a SWZ for the Flex framework(and it
provides the digest string for that SWZ file). You can post this SWZ on
your web server and load it in your SWF file(using the
load()
method of a URLLoader object). If the end user's
machine already has the matching SWZ file cached, the application uses the
cached SWZ file.(A SWZ file matches if its digest
matches
the one you provide.) Otherwise, the application downloads the SWZ file
from the URL you specify.
Only set the digest
parameter in a URLRequest object used
in a call to the URLLoader.load()
method to load a SWZ file.
If the digest
property of a a URLRequest object is set when
it is used in other methods, the application throws an IOError
exception.
For SWF content running in Flash Player(in the browser), this property
is limited to GET or POST operations, and valid values are
URLRequestMethod.GET
or
URLRequestMethod.POST
.
For content running in Adobe AIR, you can use any string value if the content is in the application security sandbox. Otherwise, as with content running in Flash Player, you are restricted to using GET or POST operations.
For content running in Adobe AIR, when using the
navigateToURL()
function, the runtime treats a URLRequest
that uses the POST method(one that has its method
property
set to URLRequestMethod.POST
) as using the GET method.
Note: If running in Flash Player and the referenced form has no
body, Flash Player automatically uses a GET operation, even if the method
is set to URLRequestMethod.POST
. For this reason, it is
recommended to always include a "dummy" body to ensure that the correct
method is used.
Flash Player and the AIR runtime impose certain restrictions on request headers; for more information, see the URLRequestHeader class description.
Not all methods that accept URLRequest parameters support the
requestHeaders
property, consult the documentation for the
method you are calling. For example, the
FileReference.upload()
and
FileReference.download()
methods do not support the
URLRequest.requestHeaders
property.
Due to browser limitations, custom HTTP request headers are only
supported for POST
requests, not for GET
requests.
Be sure to encode any characters that are either described as unsafe in
the Uniform Resource Locator specification(see
http://www.faqs.org/rfcs/rfc1738.html) or that are reserved in the URL
scheme of the URLRequest object(when not used for their reserved
purpose). For example, use "%25"
for the percent(%) symbol
and "%23"
for the number sign(#), as in
"http://www.example.com/orderForm.cfm?item=%23B-3&discount=50%25"
.
By default, the URL must be in the same domain as the calling file, unless the content is running in the Adobe AIR application security sandbox. If you need to load data from a different domain, put a URL policy file on the server that is hosting the data. For more information, see the description of the URLRequest class.
For content running in Adobe AIR, files in the application security sandobx - files installed with the AIR application - can access URLs using any of the following URL schemes:
http
and https
file
app-storage
app
Note: IPv6(Internet Protocol version 6) is supported in AIR and
in Flash Player <IP_ADDRESS> and later. IPv6 is a version of Internet
Protocol that supports 128-bit addresses(an improvement on the earlier
IPv4 protocol that supports 32-bit addresses). You might need to activate
IPv6 on your networking interfaces. For more information, see the Help for
the operating system hosting the data. If IPv6 is supported on the hosting
system, you can specify numeric IPv6 literal addresses in URLs enclosed in
brackets(), as in the following.
rtmp://2001:db8:ccc3:ffff:0:444d:555e:666f
:1935/test
System.useCodePage
istrue
, the request is encoded using the system code page, rather than Unicode. IfSystem.useCodePage
isfalse
, the request is encoded using Unicode, rather than the system code page.


Intermediate Terminal Exercises
Part I
- mkdir FIRST_NAME
- export OREOFE=/Users/Me/FIRST_NAME
- echo $FIRST_NAME
- echo $PATH
- Path environment variable is used to find programs to execute
- I would want to create an environment variable to keep track of path to my project directory
- To permanently save environment variables, open the configuration file for your shell and save them there. i.e .bash_profile
- A process is a program that is being run on the computer
- To list all the processes running on your computer, use the command 'ps aux'
- A PID is number tha uniquely identifies a process
- To terminate a process, you use the command "kill or kill -9"
- Kill mostly kills a running process however, kill -9 is a non ignorable kill. Where a process has crashed, it will kill the crashed process also.
- For case insensitive search, you use grep flag -i
- grep flag -B allows for a certain number of lines before the match.
- grep flag -C allows for a certain number of lines around the match.
- grep flag -A allows for a certain number of lines after the match
- grep flag -w allows for a fill word search
- grep flag -n shows you the line number of a match
Part II
Write the following terminal commands to do the following (assume that instructors.txt is an imaginary file):
- find ~/Desktop -name "learn"
- find ~/Desktop -name "P*"
- find ~/Desktop -name "*.txt"
- find ~/Dsektop/views -name "*data*"
- grep -c "Elie" instructors.txt
- grep -w "P*" instructors.txt
- grep -ni "z*" instructors.txt


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
For the curry sauce, heat a frying pan over a medium heat. Add the spices and dry fry for 2-3 minutes, or until fragrant.
Transfer the fried spices to a mortar and pestle and grind to a powder.
Heat the oil in a frying pan over a medium heat, add two of the onions and fry for 8-10 minutes, or until softened and golden-brown.
Add the garlic and chilli and continue to fry for 2-3 minutes, or until softened.
Add the canned tomatoes, ginger and turmeric and bring the mixture to the boil. Stir in the reserved spices.
Add the stock and simmer the mixture for 25-30 minutes, or until the sauce has thickened and is starting to dry out around the edges. Set the sauce aside to cool slightly.
Using a stick blender, blend the sauce mixture until very smooth. Add the honey and blend again until smooth.
Heat half of the butter in a separate frying pan over a medium heat. When the butter is foaming, add the remaining onions and fry for 8-10 minutes, or until softened and golden-brown. Add the fried onions to the blended curry sauce.
Heat the remaining butter in the frying pan over a medium heat. When the butter is foaming, add the prawns and fry for 4-5 minutes, turning once, or until pink. Add the cooked prawns and the peas to the curry sauce.
To serve, spoon the pilau rice into the centre of six serving plates. Divide the prawn dopiaza equally among the serving plates. Sprinkle over the coriander.


Category
Skills
Angular
CSS
Graphic Design
Ember
HTML
Information Architecture
Javascript
Mechanical Engineering
Meteor
NodeJS
Plumbing
Python
Rails
React
Kitchen Repair
Ruby
UI Design
User Experience
Skills Angular CSS Graphic Design Ember HTML Information Architecture Javascript Mechanical Engineering Meteor NodeJS Plumbing Python Rails React Kitchen Repair Ruby UI Design User Experience


--- layout: post title: Subquery rewriting date: type: post published: false status: draft categories: - MySQL tags: [] meta: _edit_last: '2' author: login: shlomi email<EMAIL_ADDRESS>display_name: shlomi first_name: Shlomi last_name: Noach ---
1st CASE
moving IN(....)
to derived table: saves the n-times of table calculation; makes for a temporary table.
2nd CASE


Suspect arrested for issuing fake Zimbabwe, SA drivers licences
by Staff ReporterPretoria – A 28-year-old man has been arrested for allegedly manufacturing, issuing and selling Zimbabwean and South African driver’s licences, asylum-seeker temporary permits and passports, the Directorate for Priority Crime Investigation [Hawks] said on Thursday.
“A joint operation comprising of the Hawks’ serious commercial crime investigation unit, crime intelligence, the local criminal record centre and Kuruman public order police led to the arrest of a 28-year-old Zimbabwean national on Tuesday for alleged fraud,” said Hawks spokesperson Nomthandazo Mnisi.
Undercover transactions aimed at gathering evidence were conducted with the suspect, and he was subsequently arrested.
Mnisi said the man was charging amounts varying from R1 000 to R2 500 for the fake documents.
The accused made an appearance in the Mothibistad Magistrate’s Court on Thursday, and the matter was postponed.
African News Agency (ANA)


"W" translate | "E" scale | "R" rotate | "+/-" adjust size
"Q" toggle world/local space | "Shift" snap to grid | "S" toggle screen
space panning
"X" toggle X | "Y" toggle Y | "Z" toggle Z | "Spacebar" toggle enabled
"C" toggle camera | double click to select section
☰


| GeneSeqer | GenomeThreader (w/out intron cutout) | GenomeThreader (with intron cutout) | |
| total output | gsq-OSchr10.out9 | gth-OSchr10.out9 | gth-OSchr10-IC.out9 |
| parameter settings | parameters.gsq | parameters.gth | parameters.IC.gth |
| alignments the same | struct_same.gsq | struct_same.gth | * |
| struct_same.IC.gsq | * | struct_same.IC.gth | |
| alignments similar, but on opposite strands | strand_diff.gsq | strand_diff.gth | * |
| gene structures differ, but at same locus | struct_diff.gsq | struct_diff.gth | * |
| struct_diff.IC.gsq | * | struct_diff.IC.gth | |
| cDNA maps to different locus | locus_diff.gsq | locus_diff.gth | * |
Back to main page


Data preparation
This section gives some ideas how the raw data in the monitoring database looks like.
The data has been extracted from ActivityInfo by using the ActivityInfo API and pre-processed to make it ready for the analysis.
The most of data extraction and cleaning are done beforehand (please see
R/
folder in the repository especially take a close look atetl.R
andetl-methods.R
files). If you want to download the raw data, you must have an access for it, that can be done by sourcing theetl.R
file.Data dictionary shows what the columns mean in the data:
| Column name | Description |
|---|---|
databaseId |
the internal ActivityInfo id for databases |
databaseName |
the name of databases visible to users |
folderId |
the internal ActivityInfo id for folders |
folderName |
the name of folders visible to users |
formId |
the internal ActivityInfo id for forms |
formName |
the name of forms visible to users (they are called as Sectors in this database specific) |
subFormId |
the internal ActivityInfo id for the sub-forms where the records are kept |
subFormName |
the name of the sub-forms visible to users |
Month |
month information for each record as YYYY-MM format e.g. 2019-05 |
code |
schema code |
question |
question label indicated by the field code |
response |
response given by users |
required |
a boolean value to check whether a question is required for saving a record |
type |
internal type for the code. The available types in the data are ‘Quantity’, ‘Narrative’ and ‘Enumerated’ |
partnerName |
the name of reporting partners. The name of implementing partners can be extracted from the data (from code column) |
canton |
the canton name of a record |
province |
the province name of a record |
description |
the description field further explaining what a question can mean |
reportingUsers |
a list-column containing unique user information reporting to a particular record |
The cells are represented as
NA
when fields not exists or not applicable.Please see the ActivityInfo documentation for more information about how the information is structured.
Automatic merging on duplicate entities
The duplicated entities found in the records are cleaned as much as possible during the data cleaning process.
For instance, as of August 2019, there are two Implementing partners1 with almost the same name are found in the data. They are merged into one because they imply the same partner.
This is fixed by using one of the “approximate string matching” algorithms that is readily provided by Open Refine2.
example_duplicate_partners <- c(
"Federación de Mujeres de Sucumbios",
"Federación de mujeres de sucumbíos"
)
example_collison <- refinr::key_collision_merge(example_duplicate_partners)
unique(example_collison)
## [1] "Federación de Mujeres de Sucumbios"
See the Partners section for more information about what the term means.↩
And the R package called refinr successfully ported it to R: https://cran.r-project.org/package=refinr↩


A Node.js web app to find study space at UTSC
Created as a team project in the Programming on the Web (CSCC09) course at the University of Toronto Scarborough.
A homework system written in Java.
Developed as a proof of concept of an appealing computer-based homework system.
Created as a team project in the Intro to Software Engineering (CSCC01) course at the University of Toronto Scarborough.
A mock unix shell written in Java.
Created as a team project in the Software Design (CSCB07) course at the University of Toronto Scarborough.
A web page that allows you to browse (some of) the web within an iframe.
A (very small) chrome extension that bypasses a wrong @media query rule on the UTSC timetable site.
Update: As of May 2020, UTSC has fixed its site, so this extension is no longer needed.
A page using Bootstrap that lists some common Bootstrap classes.
Site to practice with CSS. Also describes projects in Github repos.


Ji, Yuanyuan & Lu, Yuan & Yang, Feng & Shen, Wanhua & Feng, Linyin & Duan, Shumin & Lu, Bai. (2010).
Acute
and gradual increases in BDNF concentration elicit distinct signaling and functions in neurons. Nature
neuroscience. 13. 302-9. 10.1038/nn.2505.
Started out working in neurobiology. This has a couple consequences for future career
- I learned the basic of how to program, mostly doing bioinformatics type stuff.
- I learned the value of well designed data visualization. One of the researchers I worked for (who co-wrote the
paper form which this diagram from) told me he almost always only looked at figures . . . Power of visualization.


- Version:
- 1.0
- Source:
Events
posselected
Position selection event.
Type:
- object
Properties:
| Name | Type | Description |
|---|---|---|
posInfo |
object | Position selected |
- Source:
selectpheno
Position selection event.
Type:
- object
Properties:
| Name | Type | Description |
|---|---|---|
phenoName |
string | Phenotype name selected |
- Source:


{% include 'header.html' %}
{% include 'nav.html' %}
Manifest
mode_edit
Edit
delete
Cancel
delete
Save
Manifest
Standard Version
ID
Creator
Date Created
Comment
Research Object
Title
Abstract
add_circle_outline
Privacy Ethics - Oversight
Informed Consent
Privacy Considerations
Provenance
Narrative
Publications
Locations
Files
Permissions
Permission
Dates
Date
Creators
{% include 'footer.html' %}


You just need to install mongoDB and ensure that mongo daemon is running. The installation process for mongoDB can be found here.
Make sure that the mongo daemon is running and proceed to the Login page of mViewer. Enter the Host and Port Number of the mongoDB.
If you haven’t been provided with credentials, the UserName and Password field can be left blank. By the way, to add a user to the admin database of mongoDB, read the help below.
To add a user, start the mongo process and follow the sequence in the screenshot below.
Now you can login with these credentials as described in the previous help section.
mViewer tool at the moment does not support the feature to add a Database
Right-click on the database name in mViewer and click Delete Database from the context menu as shown below.
Click Yes on the confirmation alert to delete the database. The database will be deleted and the confirmation of successful database deletion will be shown
Just click on the database in mViewer to view the statistics. Alternatively, you can right-click on the database name and click Statistics from the context menu as shown below.
Try to use localhost.localdomain as the host name, in fact the best idea would be to look at your hosts file and use the first value.
Try to navigate back to login page. Corrupted session just means that the token used for session tracking has been lost, no data at the db end would be compromised.
You can open up an issue at https://github.com/Imaginea/mViewer. Would be great if you attach the server logs to the issue.


Welcome to SOCF CrossFit located in Orlando, FL. We are determined to help you achieve your goals with proper programming and a motivating community!
View ProjectGuasacaca is probably one of the finest sauces ever invented.
View ProjectCopper Canyon LLC is an investment adviser registered with the state of Florida. An "investment adviser" means any person who, for compensation, engages in the business of advising others, either directly or through publications or writings.
View ProjectGet Ready For Orlando To Activ-Ate! #AcaiBowls #Smoothies #Organic #BeBrave #GrowBowls #Orlando #Florida #ComingSoon #Healthyfood
View ProjectThis full stack application utilizes MongoDB, Express, React, and Node
View ProjectThis full stack application utilizes MongoDB, Express, React, and Node
View Project


SPH aims to comply with the requirements of the Personal Data Protection Act 2012 (“PDPA”) and respects your choices in respect of your personal data.
The main purposes for which your personal data is collected, used or disclosed by Singapore Press Holdings Ltd, its related corporations and our service providers in Singapore include providing you with our products and services, managing your subscriptions, renewals and your account, processing payments, addressing questions and feedback, improving our products and services, as well as where permitted under law, sending you marketing and promotional offers on products and services, and personalized content and advertising based on your preferences or demographics.
In addition, if you have registered your telephone number with the national Do Not Call (DNC) registry, we will not send you promotional and marketing messages via your telephone number unless you have provided SPH consent to do so.
SPH has a Data Protection Policy which provides more information about how we collect, use and disclose your personal data. Should you have any feedback or enquiries relating to your personal data or if you wish to stop receiving promotional or marketing messages from SPH, please contact:
The Personal Data Protection Officer at the following addresses:
Name: Mr Low Huan Ping, Chief Data Protection Officer/EVP, Technology
Email<EMAIL_ADDRESS>Postal Address: 1000 Toa Payoh North, News Centre, Singapore 318994
Telephone Number : 63198555
For more information about PDPA generally, please visit the Personal Data Protection Commission’s website at http://www.pdpc.gov.sg


Note
"The best solution for debugging Zope and Plone"
-- Joel Burton, Member, Plone Team
Wing is a Python IDE that can be used to develop, test, and
debug Python code written for Zope2 or Zope3. Wing
provides auto-completion, call tips, and other features that help you write,
navigate, and understand Zope code. Wing's debugger can be used to debug code
in the context of the running Zope server, in response to page loads from a
browser, and can work with Zope's code reloading features to achieve a very
short edit/debug cycle.
Wing's code intelligence and debugging support work with Products, External
Methods, file system-based Scripts and Zope itself. Wing is also useful
for Zope-based frameworks like Plone (see Plone How-To).
Two versions of Wing are appropriate for use with this document:
Wing Pro is the full-featured Python IDE for professional programmers, and Wing Personal
is a free alternative with reduced feature set.
If you do not already have Wing installed, download it now.
This document describes how to configure Wing for Zope. To get started using Wing as your
Python IDE, please refer to the tutorial in Wing's Help menu or read the Quickstart
Guide.
Before Getting Started
Note: This guide is for Zope2 users. If you are using Zope3, please
try z3wingdbg by Martijn Pieters or refer to Debugging Externally
Launched Code in the users manual to set up Zope3 debugging manually.
Limitations: Wing cannot debug DTML, Page Templates, ZCML,
or Python code that is not stored on the file system.
Security Warning: We advise against using the WingDBG product
on production web servers. Any user connected to the Wing debugger
will (unavoidably) have extensive access to files and data on the system.
Upgrading from earlier Wing versions
If you are upgrading from an older version of Wing and have previously used
Wing with your Zope installation(s), you need to manually upgrade WingDBG
in each Zope instance. Otherwise, debugging may fail.
The easiest way to do this is to go to the Zope Control Panel, click on Wing
Debug Service, and then Remove the control panel. Then restart Zope. Next,
go into your Wing project's Extension Tab, verify that you've got the
Zope Instance Home set correctly, and press Apply. This will offer to
re-install WingDBG with the latest version and will configure it to point
to the new version of Wing.
Quick Start on a Single Host
To use Wing with Zope running on the same host as the IDE:
- Install Zope -- You can obtain Zope from zope.org. Version
2.5.1 or newer will work with Wing.
- Install Wing -- You will need Wing 2.1 or later.
See Installing for details.
- Configure Wing -- Start Wing, create or open the project you
wish to use (from the Project menu). Then use the Extensions
tab in Project Properties to enable Zope2/Plone support and to
specify the Zope2 Instance Home to use with the project. Wing
will find your Zope installation by reading the file etc/zope.conf
in the provided Zope instance. Once you press Apply or OK in the Project
Properties dialog, Wing will ask to install the WingDBG product and will
offer to add files from your Zope installation to the project.
If your zope instance is generated by buildout, set the main debug file to
the bin/instance file (bin\instance-script.py on Windows) in your
buildout tree by opening the file in Wing and select Set Current as Main
Debug File in the Debug menu. This will set up the effective sys.path
for the instance.
- Configure the WingDBG Product -- Start or restart Zope and
log into http://localhost:8080/manage (assuming default Zope
configuration). The Wing Debugging Service will be created automatically
on startup; you can find it under the Control Panel of your server.
If the Wing Debugging Service does not appear in the Control Panel,
you may need to enable product loading in your zope.conf file by
changing enable-product-installation off to
enable-product-installation on.
Starting the Debugger
Proceed to the Wing Debugger Service by navigating to the Control Panel, then
selecting the 'Wing Debugging Service'. Click in the "Start" button. The Wing
IDE status area should display "Debugger: Debug process running".
Note that you can configure WingDBG to start and connect to the IDE automatically
when Zope is started from the Advanced configuration tab.
Problems? See the Trouble-Shooting Guide below.
Test Drive Wing
Once you've started the debugger successfully, here are some things
to try:
Run to a Breakpoint -- Open up your Zope code in Wing and set
a breakpoint on a line that will be reached as the result of a browser
page load. Then load that page in your web browser using the port number
displayed by the Zope Management Interface after you started the
debugger. By default, this is 50080, so your URL would look something
like this:
http://localhost:50080/Rest/Of/Usual/Url
Explore the Debugger Tools -- Take a look at these tools available
from the Tools menu:
- Stack Data -- displays the stack, allows selecting current stack frame,
and shows the locals and globals for that frame.
- Debug Probe (Wing Pro only) -- lets you interact with your paused debug process using
a Python shell prompt
- Watch (Wing Pro only) -- watches values selected from other value views (by right-clicking
and selecting one of the Watch items) and allows entering expressions
to evaluate in the current stack frame
- Modules (Wing Pro only) -- browses data for all modules in sys.modules
- Exceptions -- displays exceptions that occur in the debug process
- Debug I/O -- displays debug process output and processes keyboard input
to the debug process, if any
Continue the Page Load -- When done, select Start / Continue from the
Debug menu or toolbar.
Try Pause -- From Wing, you can pause the Zope process by pressing
the pause icon in the toolbar or using Pause from the Debug menu. This is
a good way to interrupt a lengthy computation to see what's going on.
When done between page loads, it pauses Zope in its network service code.
Other Features -- Notice that Wing's editor contains a source
index and presents you with an auto-completer when you're editing
source code. Control-click on a source symbol to jump to its
point of definition (or use Goto Selected Symbol in the Source menu).
Wing Pro also includes a Source Assistant and Source Browser. The
Source Assistant will display context appropriate call tips and documentation.
Bring up the Source Browser from the Tools menu to look at the
module and class structure of your code.
Setting Up Auto-Refresh
When you edit and save Zope External Methods or Scripts, your changes
will automatically be loaded into Zope with each new browser page load.
By default, Zope Products are not automatically reloaded, but it is
possible to configure them to do so. This can make debugging much
faster and easier.
Take the following steps to take advantage of this feature:
- Place a file called refresh.txt in your Product's source directory
(for example, Products/MyProductName inside your Zope
installation). This file tells Zope to allow refresh for this product.
- Open the Zope Management Interface.
- Expand the Control Panel and Products tabs on the upper left.
- Click on your product.
- Select the Refresh tab.
- Check the "Auto refresh mode" check box and press "Change".
- Make an edit to your product source, and you should see
the changes you made take effect in the next browser page load.
Limitations: Zope may not refresh code if you use import statements
within functions or methods. Also, code that manages to retain references to
old code objects after a refresh (for example, by holding the references in a
C/C++ extension module) will not perform as expected.
If you do run into a case where auto-reload causes problems, you will
need to restart Zope from the Zope Management Interface's Control Panel
or from the command line. Note that pressing the Stop button in Wing
only disconnects from the debug process and does not terminate Zope.
Alternative Approach to Reloading
The refresh.txt techique for module reloading is discouraged in the Plone
community. Another option for reloading both Zope and Plone filesystem-based
code is plone.reload available from pypi at http://pypi.python.org/pypi/plone.reload. plone.reload will allow you
to reload Python code that has been changed since the last reload, and also
give you the option to reload any zcml configuration changes.
If you are using buildout, add plone.reload to the eggs and zcml
sections of your buildout.cfg and re-run buildout.
To use plone.reload, assuming Zope is running on your local machine at
port 8080, log into the ZMI as a Manager user, then go to
http://localhost:8080/@@reload on your
Zope instance with a web browser (append @@reload to the Zope instance
root, not your Plone site if you are using Plone).
Notes:
- If you are using Plone, your Plone product's profile config files (*.xml files)
get loaded through the ZMI at /YourPlone/portal_setup in the import tab.
- Code that uses a @decorator will still likely require a restart.
Setting up Remote Debugging
Configuring Wing for remote debugging can be complicated, so we
recommend using X11 (Linux/Unix) or Remote Desktop (Windows)
to run Wing on the same machine as Zope but display it remotely.
When this is not possible, you can set up Wing to debug Zope running
on another machine, as described below:
- Set up File Sharing -- You will need some mechanism for
sharing files between the Zope host and the Wing host. Windows file
sharing, Samba, NFS, and ftp or rsync mirroring are all options.
For secure file sharing via SSH on Linux, try sshfs.
- Install Wing on the Server -- You will also need to install Wing on
the host where Zope is running, if it is not already there. No
license is needed for this installation, unless you plan to also
run the IDE there. If there is no binary distribution of Wing available for the
operating system where Zope is running, you can instead install only
the debugger libraries by building them from source code (contact Wingware
for details).
- Basic Configuration -- Follow the instructions for Single-Host
Debugging above first if you have not already done so. Then return here
for additional setup instructions.
- Configure Allowed Hosts -- You will need to add the IP address of
the Zope host to the Allowed Hosts preference in Wing. Otherwise
Wing will not accept your debug connections.
- Configure File Mapping -- Next, set up a mapping between the location
of the Zope installation on your Zope host and the point where it is
accessible on your Wing host. For example, if your Zope host is <IP_ADDRESS> Zope is installed in
/home/myuser/Zope on that machine, and /home/myuser is mounted on your
Wing host as e:, you would add a Location Map preference setting
that maps <IP_ADDRESS> to a list containing /home/myuser/Zope and e:/Zope.
For more information on this, see Manually Configured File Location Maps and Location Map Examples
in the Wing manual.
- Set the Zope Host -- Go into Project Properties and set the Zope Host
to match the host name used in configuring the File Location Map in the previous
step. This is used to identify which host mapping should be applied to
file names read from the zope.conf file.
- Modify WingDBG Configuration -- When debugging remotely, the value
given to WingDBG for the Wing Home Directory must be the location
where Wing is installed on the Zope host (the default value will
usually need to be changed).
- Check Project Configuration -- Similarly, the paths identified
in Project Properties should be those on the host where Wing
IDE is running, not the paths on the Zope host.
Trouble Shooting Guide
You can obtain additional verbose output from Wing and the debug
process as follows:
- If Zope or Plone on Windows is yielding a Site Error page with a notFoundError
when run under Wing's debugger, you may need to go into the Zope Management
Interface and delete the access rule (... accessRule.py ...). Now, Zope/Plone runs
on port 8080, does not alter the configuration of port 80, and will work properly
with Wing's debug port (50080 by default). If the URL for your front page
is http://localhost:8080/default/front-page, the Wing debug url will always
be the same but with the different port: http://localhost:50080/default/front-page
(Thanks for Joel Burton for this tip!)
- Go into the Wing Debugging Service in the Zope Management Interface and set Log
file under the Configure tab. Using <stdout> will cause
logging information to be printed to the console from which Zope was
started. Alternatively, set this to the full path of a log file. This file must already
exist for logging to occur.
- Restart Zope and Wing and try to initiate debug.
- Inspect the contents of the log. If you are running Zope and Wing on two
separate hosts, you should also inspect the ide.log file on the Wing
host (located in the User Settings Directory). It contains additional
logging information from the Wing process.
For additional help, send these errors logs to support at wingware.com.


At Bayro we believe that as more people in the world have access to the capital markets, regardless of the amount of their investment, we will help them achieve their dreams.
Through the tokenization of financial products, we are helping to democratize the transfer of value, reduce friction and accessibility costs, without compromising compliance or security.
We help our clients to offer their clients the possibility of investing in new asset classes through accessing specialized investment strategies, thus covering the demand for digital assets in a secure framework and enabling them to participate in the new digital financial economics.
Ahoj.Finance is a Wealthtech as a service platform for Derivatives and Equity Tokens.
A digital service for creating economic or financial rules to mint synthetics assets.
A Javascript Library for interfacing with Ahoj.Finance.
Is a synthetic commodity money to be used as a Stablecoin within a decentralized protocol.
With our digital portfolio management service, our clients will have a mechanism to inject liquidity into an automated market maker, and thus carry out asset trading.
Professional Investors and Family Offices wanting to invest in new asset classes in a trusted set-up and get access to specialized investment strategies.
Banks that are interested in meeting their customers' growing demand for digital assets in a secure framework and accessing opportunities to participate in the new digital financial economy.
Asset Managers intending to access new investment possibilities – through regulated, safe and vertically integrated services including storage, trading and asset management.
Blockchain Companies aiming to hold and manage crypto and fiat currencies in one place as well as tokenize assets according to their needs.
We help our clients to build the bridge between traditional and decentralized finance, in this way our clients can focus on growing their core business.
The service we provide is to make adjustments to any of the Ahoj.Finance products and build new financial and wealth management products on them.
Our clients can be the innovation paths of Binance, FTX and Bittrex Global, and enter the path of tokenized stock trading. We are here to help with Ahoj.Assets by adjusting one of our products to the specific needs of our clients.
Innovative visions in decentralized finance make our clients leaders. We can accompany them in the tokenization and trading of real world assets (art, real state, cars), ETFs, Commodities and even assets representing sustainable market values (Carbon Market, Renewable Energy, Regenerative Ecology).
With a white label stablecoin, you can fully own and rate the customer experience. With this service, our clients can boost their global business and establish market leadership. Our clients may be leading multinational retailers, global telecommunications providers, payment platforms or others offering commerce or payments to millions of users, our Stablecoin service could transform your business.
Get in touchTransparency.
Performance.
Be ahead of the curve combining digital and traditional assets.
Get one secure and integrated access point to the new financial economy.
Tokenization of financial products.


Incentives and Bidwars available during the Marathon will be displayed here. Use the !vote and !war commands to spend points towards them!


Gymnastic Rings
Materials: Wood
Strap Length: 4m
Ring Thickness: 32mm
Sold with Straps
$45 SGD
Buy Now


Registration Form
This page allows you to create a new XMPP/Jabber account in this server for the domain {hostname}. Your new JID will be created in the form
username@{hostname}
.
After creating an account, you must use a software client to login into the server. Below is a small list of clients you may use, but really any XMPP client can work.
Once you have logged into the server, you may then chat with users on nearly any XMPP server.
Please see the client list for a longer list of available clients that may be used.


?N.
L.
BRITTON
E.
Q.
BRITTON
J.
A.
8HAFER
Warn
G-L
UNITED
STATES
NATIONAL
HERBARIUM
Olyra
latifolia
L.
M
TR
Sšderstršm
&
P.O.
ZukMC*.
AuC
>983
THE
PLANTS
NEW
YORK
BOTANICAL
GARDEN
FROM
THE
VICINITY
OF
MATANZAS,
CUBA
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


I watched the videos from the Scottish RubyConf 2010 and thought I could share some interesting moments as simple notes. So there you go:
Harmony for browser testing
Capybara.driver = :rack_test # uses Harmony and can run JS
Good talk about Arel: 1LT_04-mp4_500mbs.mp4
Rack GeoIP.
Rack GoogleAnalytics
Rack::Cache (standard)
Rack::CacheBuster
Server side include to render page without parts of content that fail
(Nginx + Rack)
EvenMachine:: WebSockets add-on uses JS like API.
Other options:
-em-websocket
-cramp (higher level websocket)
-sunshowers
-node.js
pusherapp.com
Initialise multiple variables in JS:
var a = 1, b = 2, noInitialised;
jQuery has "end" method to go up in the chain.
VIM
:copen - opens the console output
f - find next occurence of char in this line
dap - delete paragraph
cap - change
yap - yank
ytCHAR - yank from here to next CHAR
Ctrl-v - visual block mode
:split, :sp, :vspilt, :vsp - split into 2 wins
ls - list buffers touched
q1, q2, q3... - record macro into register
@1, @2, @3... - play the macro from register
:R - Rails related file
:A - Rails alternate file
:Rextract - Rails partial extract
Shift-k - integrated Ruby ri
figutive.vim - more extensions: Glog, Gblame, Gstatus, Gdiff, Ggrep etc
snippets.vim
nerdtree.vim - files tree view
surround.vim
unimpaired.vim - auto-brackets
Hashrocket configured Vim at Github hashrocket/dotmatrix
Vimium, Vimperator - Vim in browser
Remotely connect and pair in Vim
UTF-8 is backwards compatible with ASCII
Ruby doesn't know about UTF-16 - it's messy
Globalization TODO:
- Do same as .NET CultureInfo
- Do different ways to localize different kinds of langs
You can generate UML model of Rails model using:
railroad -M | dot Tpng > model.png
uml dumper
Metrics:
- rake stats # LOCs
- FLOG Weighting the code AST - Assignment Branch Condition (ABC)
- FLAY - code similarities
- Saikuro - cyclomatic complexity
- Roodi - design issues
- Reek - design issues and specific smells
- Churn - changes to file with Git
- Rcov - test coverage
- Heckle - test coverage with code mutation
- metric_fu
You can also grab the Gist. Hope you find some moment useful.