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
37
38 package ti.uia.sysbios;
39
40 /*!
41 * ======== LoggingSetup ========
42 * Module to aid in configuring TI-RTOS logging using UIA and System Analyzer.
43 *
44 * @p
45 * The LoggingSetup module automates the process of configuring an application
46 * to use UIA events, and configures TI-RTOS modules to capture user-specified
47 * information such as CPU Load, Task Load and Task Execution so that it can
48 * be displayed by System Analyzer. It also automates the creation of
49 * infrastructure modules such as loggers, the ServiceManager and RTA modules
50 * to enable the capture and upload of the events over a user-specified
51 * transport.
52 * Both JTAG and Non-JTAG transports are supported.
53 * @p
54 * The following configuration script demonstrates the use of the LoggingSetup
55 * module in the XDC configuration file for the application:
56 *
57 * @a(Example)
58 * Example 1: Configuring an application to use the default settings provided
59 * by LoggingSetup. The following default settings are automatically applied:
60 * @p(blist)
61 * - Logging UIA events from user-provided C code. User provided C code is
62 * treated as part of the xdc.runtime.Main module. A circular buffer of
63 * size {@link #mainLoggerSize} Bytes is enabled by default to support
64 * this.
65 * - Event logging is enabled for the TI-RTOS Load and Task modules in order
66 * to allow System Analyzer to display CPU Load, and Task
67 * Execution information. Logging of SWI and HWI events is disabled by
68 * default. In order to optimize event capture and minimize event loss, three
69 * loggers are created: one to store events from the TI-RTOS Load module
70 * another to store events from other TI-RTOS modules, and the third to store user
71 * Log events.
72 * - The events will be logged to {@link ti.uia.loggers.LoggerStopMode LoggerStopMode}
73 * loggers, and will be uploaded over JTAG when the target halts.
74 * @p
75 * @p(code)
76 * // the Log module provides logging APIs for use by the user's software
77 * var Log = xdc.useModule('xdc.runtime.Log');
78 * // the LoggingSetup module's default settings configure much of the UIA infrastructure.
79 * var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
80 * @p
81 * @p(html)
82 *

83 * @p
84 * @a(Example)
85 * Example 2: Use all the default settings of LoggingSetup, except use the
86 * minimal footprint logger, LoggerMin. The following settings will be applied:
87 * @p(blist)
88 * - Logging UIA events from user-provided C code.
89 * - Event logging is enabled for the TI-RTOS Load and Task modules, and
90 * disabled for SWI and HWI.
91 * - The events will be logged via {@link ti.uia.loggers.LoggerMin LoggerMin},
92 * and will be uploaded over JTAG when the target halts.
93 * - All events will be logged into one buffer whose default sise is
94 * {@link ti.uia.loggers.LoggerMin#bufSize}
95 */
96 metaonly module LoggingSetup
97 {
98
99 /*!
100 * ======== enableTaskProfiler ========
101 * Enable System Analyzer's Task Profiler
102 *
103 * Setting enableTaskProfiler to true enables task, hwi and swi
104 * entry and exit logging in order to generate profiling
105 * information
106 */
107 metaonly config Bool enableTaskProfiler = false;
108
109 /*!
110 * ======== enableContextAwareFunctionProfiler ========
111 * Enable System Analyzer's Context Aware Function Profiler
112 *
113 * Setting to true enables function entry and exit logging
114 * in order to generate function profiling information.
115 * This requires that the compiler's function entry and exit
116 * hook functions be enabled.
117 */
118 metaonly config Bool enableContextAwareFunctionProfiler = false;
119
120 /*!
121 * ======== memorySectionName ========
122 * Memory section name for the buffer managed by the static instance
123 * (default is null).
124 *
125 * By default the local 'dataMemory' in the platform is used (typically
126 * SRAM or L2SRAM).
127 * The available memory section names for your device can be determined by
128 * either looking in the MEMORY CONFIGURATION section of the .map file
129 * that is generated when you build your application or from the Platform
130 * file that your application is using.
131 */
132 metaonly config String memorySectionName = null;
133
134 /*!
135 * ======== numCores ========
136 * Number of cores running the same image with an instance in shared
137 * memory.
138 *
139 * A common use case is to have the same binary image (e.g. .out file)
140 * run on multiple cores of a multi-core device. This causes a problem if
141 * the logger's buffers are in shared memory (e.g. DDR). Since the image is
142 * the same for all the cores, each core will attempt to write to the same
143 * buffer in the shared memory. To avoid this, either place the logger's
144 * buffers in non-shared memory, or set the numCores parameter to
145 * the number of cores on the device.
146 *
147 * Note: Use the `{@link #bufSection}` along with the Program.sectMap to
148 * place a logger instance's buffer into specific memory.
149 *
150 * Setting numCores to a value greater than 1 signals the logger to
151 * statically set aside additional memory ((x numCores), allowing each
152 * core to have the logger's configured buffer size amount of memory.
153 *
154 * Warning: Setting this parameter to a value greater than one should only
155 * be done when there is a single image used on multiple cores of a
156 * multi-core device AND the logger instance's buffer is in shared memory.
157 * While functionally it will still work, memory will be wasted if both
158 * these conditions are not met.
159 *
160 * The default is 1, which means do not reserve any additional memory
161 * for the logger.
162 */
163 metaonly config Int numCores = 1;
164
165
166 /*!
167 * ======== cpuId=========
168 * CPU ID to put in the packet header as the endpoint ID.
169 *
170 * Not required for C6X or C7X devices (uses DNUM).
171 */
172 metaonly config Int cpuId = 0;
173
174 175 176 177
178 enum TimestampSize {
179 TimestampSize_AUTO = 0, /*! Use the logger's default timestamp size */
180 TimestampSize_NONE = 1, /*! No timestamps logged with events */
181 TimestampSize_32b = 2, /*! 32-bit timestamps */
182 TimestampSize_64b = 3 /*! 64-bit timestamps */
183 };
184
185 /*!
186 * ======== timestampSize ========
187 * Size of the timestamps logged with the events. Set to TimestampSize_NONE
188 * to disable timestamps.
189 */
190 metaonly config TimestampSize timestampSize = TimestampSize_AUTO;
191
192 /*!
193 * ======== loadLogging ========
194 * Enable CPU load event logging.
195 *
196 * If loadLogging is false, CPU Load events will be disabled, otherwise the events
197 * will be logged.
198 * Use the {@link #loadLoggingRuntimeControl} parameter
199 * to determine whether the state can be modified during runtime.
200 */
201 metaonly config Bool loadLogging = true;
202
203 /*!
204 * ======== loadTaskLogging ========
205 * Enable Task load logging.
206 *
207 * If this is false, the Task load events will be disabled.
208 * Otherwise the events will be enabled.
209 * Use the {@link #loadLoggingRuntimeControl} parameter
210 * to determine whether the state can be modified during runtime.
211 */
212 metaonly config Bool loadTaskLogging = false;
213
214 /*!
215 * ======== loadSwiLogging ========
216 * Enable Software Interrupt (Swi) event logging.
217 *
218 * If this is false, the Swi load events will be disabled.
219 * Otherwise the events will be enabled.
220 * Use the {@link #loadLoggingRuntimeControl} parameter
221 * to determine whether the state can be modified during runtime.
222 */
223 metaonly config Bool loadSwiLogging = false;
224
225 /*!
226 * ======== loadHwiLogging ========
227 * Enable Hardware Interrupt (Hwi) event logging.
228 *
229 * If this is false, the Hwi load events will be disabled.
230 * Otherwise the events will be enabled.
231 * Use the {@link #loadLoggingRuntimeControl} parameter
232 * to determine whether the state can be modified during runtime.
233 */
234 metaonly config Bool loadHwiLogging = false;
235
236 /*!
237 * ======== loadLogger ========
238 * User-created logger used for the Load module Log events
239 *
240 * Leave null to have LoggingSetup automatically create
241 * the loadLogger if required.
242 */
243 config xdc.runtime.ILogger.Handle loadLogger = null;
244
245 /*!
246 * ======== loadLoggerSize ========
247 * Size (in MAUs) of the packet used to upload the Load module Log events.
248 */
249 metaonly config SizeT loadLoggerSize = 512;
250
251 /*!
252 * ======== loadLoggingRuntimeControl ========
253 * Specify whether load logging can be enabled / disabled at runtime.
254 *
255 * This determines what {@link xdc.runtime.Diags Diags} settings are
256 * applied to the module's Diags mask.
257 * If 'false', the Diags bits will be configured as
258 * ALWAYS_ON, meaning they can't be changed at runtime. If 'true', the
259 * bits will be configured as 'RUNTIME_ON'.
260 *
261 * Use the {@link #loadLogging} parameter
262 * to determine whether the event is ON or OFF. For example, the
263 * following two lines set the Load module's events to 'ALWAYS_ON'.
264 *
265 * @p(code)
266 * LoggingSetup.loadLogging = true;
267 * LoggingSetup.loadLoggingRuntimeControl = false;
268 * @p
269 */
270 metaonly config Bool loadLoggingRuntimeControl = false;
271
272 /*!
273 * ======== mainLogging ========
274 * Enable logging of application code.
275 *
276 * If mainLogging is false, application logging will be disabled, otherwise
277 * it will be enabled. Use the {@link #mainLoggingRuntimeControl} parameter
278 * to determine whether the state can be modified during runtime.
279 * Together, these two configuration parameters will be used to
280 * initialize the {@link xdc.runtime.Main} Diags mask.
281 *
282 * The table below shows the initial values of the
283 * xdc.runtime.Main Diags mask settings, based on mainLogging and
284 * mainLoggingRuntimeControl configuration. These settins only
285 * apply to Diags masks that have not been set in the application's
286 * configuration file. For example, this configuration code would
287 * cause xdc.runtime.Main's USER1 Diags mask to be unaffected by
288 * the settings of mainLogging and mainLoggingRuntimeControl:
289 *
290 * @p(code)
291 * Diags.setMaskMeta('xdc.runtime.Main', Diags.USER1, Diags.RUNTIME_ON);
292 * @p
293 *
294 * @p(html)
295 *
 Diags Mask Settings for xdc.runtime.Main

296 *

297 * <colgroup span="1"></colgroup> <colgroup span="5" align="center">
298 * </colgroup>
299 *
 	 mainLoggingRuntimeControl

300 *
 true 	 false

301 *
 mainLogging 	 true 	 RUNTIME_ON
302 *  ALWAYS_ON

303 *
 false 	 RUNTIME_OFF 	  ALWAYS_OFF

304 *

305 */
306 metaonly config Bool mainLogging = true;
307
308 /*!
309 * ======== mainLogger ========
310 * Logger used for application Log events
311 *
312 * Leave null to have LoggingSetup automatically create
313 * the mainLogger if required.
314 */
315 config xdc.runtime.ILogger.Handle mainLogger = null;
316
317 /*!
318 * ======== mainLoggerSize ========
319 * Size (in MAUs) of packet used for application Log
320 * events.
321 */
322 metaonly config SizeT mainLoggerSize = 1024;
323
324 /*!
325 * ======== mainLoggingRuntimeControl ========
326 * Specify whether application logging can be enabled / disabled
327 * at runtime.
328 *
329 * This parameter, together with {@link #mainLogging}, determine the
330 * initial {@link xdc.runtime.Diags} settings applied to
331 * {@link xdc.runtime.Main}.
332 * If 'false' and {@link #mainLogging} is true, the diags bits will
333 * be configured as ALWAYS_ON, meaning they can't be changed at runtime.
334 * If 'true', the bits will be configured as 'RUNTIME_ON'.
335 *
336 * Use the {@link #mainLogging} parameter
337 * to determine whether the event is ON or OFF. For example, the
338 * following two lines set the xdc.runtime.Main events to
339 * initially be 'RUNTIME_ON'.
340 *
341 * @p(code)
342 * LoggingSetup.mainLogging = true;
343 * LoggingSetup.mainLoggingRuntimeControl = true;
344 * @p
345 */
346 metaonly config Bool mainLoggingRuntimeControl = true;
347
348 /*!
349 * ======== sysbiosLogger ========
350 * Logger used for SYSBIOS modules' Log events
351 *
352 * Leave null to have LoggingSetup automatically create
353 * the sysbiosLogger if required.
354 */
355 config xdc.runtime.ILogger.Handle sysbiosLogger = null;
356
357 /*!
358 * ======== sysbiosLoggerSize ========
359 * Size (in MAUs) of the packet used for the TI-RTOS modules' Log events.
360 */
361 metaonly config SizeT sysbiosLoggerSize = 1024;
362
363 /*!
364 * ======== sysbiosTaskLogging ========
365 * Enable the SYSBIOS Task module's event logging.
366 *
367 * If false, Task events will be disabled, otherwise the events
368 * will be enabled.
369 * Use the {@link #sysbiosTaskLoggingRuntimeControl} parameter
370 * to determine whether the state can be modified during runtime.
371 */
372 metaonly config Bool sysbiosTaskLogging = true;
373
374 /*!
375 * ======== sysbiosTaskLoggingRuntimeControl ========
376 * Specify whether Task logging can be enabled / disabled at runtime.
377 *
378 * This parameter, together with {@link #sysbiosTaskLogging}, determine the
379 * initial {@link xdc.runtime.Diags Diags} settings applied to
380 * the Task module. For example, the following two
381 * lines initialize the Task module's events to
382 * 'ALWAYS_ON'.
383 *
384 * @p(code)
385 * LoggingSetup.sysbiosTaskLogging = true;
386 * LoggingSetup.sysbiosTaskLoggingRuntimeControl = false;
387 * @p
388 */
389 metaonly config Bool sysbiosTaskLoggingRuntimeControl = true;
390
391 /*!
392 * ======== sysbiosSwiLogging ========
393 * Enable SYSBIOS Swi module's event logging.
394 *
395 * If false, Swi events will be disabled, otherwise the events
396 * will be enabled.
397 * Use the {@link #sysbiosSwiLoggingRuntimeControl} parameter
398 * to determine whether the state can be modified during runtime.
399 */
400 metaonly config Bool sysbiosSwiLogging = false;
401
402 /*!
403 * ======== sysbiosSwiLoggingRuntimeControl ========
404 * Specify whether Swi logging can be enabled / disabled at runtime.
405 *
406 * This parameter, together with {@link #sysbiosSwiLogging}, determine the
407 * initial {@link xdc.runtime.Diags Diags} settings applied to
408 * the SYSBIOS Swi module. For example, the following two
409 * lines initialize the Swi module's events to 'RUNTIME_OFF'.
410 *
411 * @p(code)
412 * LoggingSetup.sysbiosSwiLogging = false;
413 * LoggingSetup.sysbiosSwiLoggingRuntimeControl = true;
414 * @p
415 */
416 metaonly config Bool sysbiosSwiLoggingRuntimeControl = false;
417
418 /*!
419 * ======== sysbiosHwiLogging ========
420 * Enable the SYSBIOS Hwi and Clock modules' event logging.
421 *
422 * If false, Hwi and Clock events will be disabled, otherwise the events
423 * will be enabled.
424 * Use the {@link #sysbiosHwiLoggingRuntimeControl} parameter
425 * to determine whether the state can be modified during runtime.
426 */
427 metaonly config Bool sysbiosHwiLogging = false;
428
429 /*!
430 * ======== sysbiosHwiLoggingRuntimeControl ========
431 * Specify whether Hwi and Clock logging can be enabled / disabled at
432 * runtime.
433 *
434 * This parameter, together with {@link #sysbiosHwiLogging}, determine the
435 * initial {@link xdc.runtime.Diags Diags} settings applied to
436 * the SYSBIOS Hwi and Clock modules. For example, the following two
437 * lines set the Hwi and Clock modules' events to 'ALWAYS_ON'.
438 *
439 * @p(code)
440 * LoggingSetup.sysbiosHwiLogging = true;
441 * LoggingSetup.sysbiosHwiLoggingRuntimeControl = false;
442 * @p
443 */
444 metaonly config Bool sysbiosHwiLoggingRuntimeControl = false;
445
446 /*!
447 * ======== sysbiosSemaphoreLogging ========
448 * Enable the SYSBIOS Semaphore module's event logging.
449 *
450 * If false, Semaphore events will be disabled, otherwise the events
451 * will be enabled.
452 * Use the {@link #sysbiosSemaphoreLoggingRuntimeControl} parameter
453 * to determine whether the state can be modified during runtime.
454 */
455 metaonly config Bool sysbiosSemaphoreLogging = false;
456
457 /*!
458 * ======== sysbiosSemaphoreLoggingRuntimeControl ========
459 * Specify whether Semaphore logging can be enabled / disabled at runtime.
460 *
461 * This parameter, together with {@link #sysbiosSemaphoreLogging}, determine the
462 * initial {@link xdc.runtime.Diags Diags} settings applied to
463 * the SYSBIOS Semaphore module. For example, the following code
464 * initializes the Semaphore module's events to 'RUNTIME_OFF'.
465 *
466 * @p(code)
467 * LoggingSetup.sysbiosSemaphoreLogging= false;
468 * LoggingSetup.sysbiosSemaphoreLoggingRuntimeControl = true;
469 * @p
470 */
471 metaonly config Bool sysbiosSemaphoreLoggingRuntimeControl = false;
472
473 /*!
474 * ======== profileLogging ========
475 * Enable logging of function profiling events.
476 *
477 * If this is false, the events will be disabled. Otherwise the events
478 * will be enabled.
479 */
480 metaonly config Bool profileLogging = false;
481
482 /*!
483 * ======== countingAndGraphingLogging ========
484 * Enable logging of counting and graphing events.
485 *
486 * If this is false, the events will be disabled. Otherwise the events
487 * will be enabled.
488 */
489 metaonly config Bool countingAndGraphingLogging = false;
490
491 /*!
492 * ======== benchmarkLogging ========
493 * Enable logging of benchmark events.
494 *
495 * If this is false, the events will be disabled. Otherwise the events
496 * will be enabled.
497 */
498 metaonly config Bool benchmarkLogging = false;
499
500 /*!
501 * ======== snapshotLogging ========
502 * Enable logging of snapshot events.
503 *
504 * If this is false, the events will be disabled. Otherwise the events
505 * will be enabled.
506 */
507 metaonly config Bool snapshotLogging = false;
508
509 /*!
510 * @_nodoc
511 * ======== overflowLoggerSize ========
512 * Overflow logger is no longer used.
513 *
514 * Size of logger used for overflow events when
515 * uploadMode is either JTAGRUNMODE or NONJTAG_AND_JTAGSTOPMODE
516 */
517 metaonly config SizeT overflowLoggerSize = 1024;
518
519 /*!
520 * @_nodoc
521 * ======== UploadMode ========
522 * Keep for backwards compatibility with 1.04 LoggingSetup.
523 */
524 enum UploadMode {
525 UploadMode_SIMULATOR = 1,
526 UploadMode_PROBEPOINT = 2,
527 UploadMode_JTAGSTOPMODE = 3,
528 UploadMode_JTAGRUNMODE = 4,
529 UploadMode_NONJTAGTRANSPORT = 5,
530 UploadMode_NONJTAG_AND_JTAGSTOPMODE = 6,
531 UploadMode_STREAMER = 7,
532 UploadMode_IDLE = 8,
533 UploadMode_STREAMER2 = 9
534 };
535
536 /*!
537 * @_nodoc
538 * ========= eventUploadMode ========
539 * Keep for backwards compatibility with 1.04 LoggingSetup.
540 */
541 metaonly config UploadMode eventUploadMode = UploadMode_JTAGSTOPMODE;
542
543 /*!
544 * ======== LoggerType ========
545 * Enum of the type of loggers that can be used.
546 */
547 metaonly enum LoggerType {
548 LoggerType_MIN, /*! LoggerMin - Minimal footprint logger
549 * (JTAG only) */
550 LoggerType_STOPMODE, /*! LoggerStopMode (JTAG only) */
551 LoggerType_JTAGRUNMODE, /*! LoggerRunMode JTAG (c6x only) */
552 LoggerType_RUNMODE, /*! LoggerRunMode ETHERNET upload */
553 LoggerType_IDLE, /*! LoggerIdle - Upload in Idle loop */
554
555 556 557 558 559 560
561 LoggerType_STREAMER2 /*! LoggerStreamer2 - Application manages
562 * logger buffers */
563 };
564
565 /*!
566 * ======== loggerType ========
567 * Configures the type of logger to use.
568 */
569 metaonly config LoggerType loggerType = LoggerType_STOPMODE;
570
571 /*!
572 * ======== multicoreEventCorrelation ========
573 * Set to true for multi-core applications.
574 *
575 * When set to true, the LoggingSetup module will automatically
576 * include the {@link ti.uia.runtime.LogSync LogSync} module. The LogSync module is
577 * required for events from multiple CPU cores to be correlated with each other.
578 * @see ti.uia.runtime.LogSync
579 *
580 */
581 metaonly config Bool multicoreEventCorrelation = false;
582
583 /*!
584 * @_nodoc
585 * ======== disableMulticoreEventCorrelation ========
586 * Keep for backwards compatibility with 1.04 LoggingSetup.
587 */
588 metaonly config Bool disableMulticoreEventCorrelation;
589
590 /*!
591 * ======== maxEventSize ========
592 * For Snapshot events with loggers that support the writeMemoryRange API,
593 * this specifies the maximum event size (in Maus) that
594 * can be written with a single event. Must be less than or equal to
595 * the logger's buffer size - 64.
596 *
597 * The logger's writeMemoryRange API checks to see if the event size required to
598 * write the block of memory is larger than maxEventSize. If so, it will
599 * split the memory range up into a number of smaller blocks and log the
600 * blocks using separate events with a common snapshot ID in order to
601 * allow the events to be collated and the original memory block to be
602 * reconstructed on the host.
603 */
604 config SizeT maxEventSize = 128;
605
606 /*!
607 * ======== syncLoggerSize ========
608 * Size (in MAUs) of the logger used for the {@link ti.uia.runtime.LogSync LogSync}
609 * modules' sync point events.
610 */
611 metaonly config SizeT syncLoggerSize = ti.uia.runtime.LogSync.defaultSyncLoggerSize;
612
613 /*! @_nodoc
614 * ======== createLogger =========
615 * Internal helper function that creates the type of logger
616 * appropriate for the LoggingSetup.uploadMode that has been configured.
617 *
618 * @param(loggerSize): the size of the logger in MAUs
619 * @param(loggerInstanceName): the name to assign to the logger instance
620 * @param (loggerPriority): the IUIATransfer.Priority to assign to the
621 * logger instance
622 *
623 * @a(return) returns the logger instance that was created
624 */
625 metaonly function createLogger(loggerSize, loggerInstanceName,
626 loggerPriority);
627
628 /*! @_nodoc
629 * ======== writeUIAMetaData ========
630 * Writes any UIA metadata required to support the module
631 *
632 * NOTE: This should only be called by ti.uia.runtime.UIAMetaData.xs in
633 * order to ensure that the UIA xml file has been properly opened and is
634 * ready for writing.
635 * @param(indent) the number of spaces to preceed the xml tag with
636 */
637 metaonly function writeUIAMetaData(indent);
638
639 /*! @_nodoc
640 * ======== showMulticoreEventCorrelationOption ========
641 * READ ONLY - used by XGCONF / LoggingSetup.xml
642 */
643 metaonly config Bool showMulticoreEventCorrelationOption = false;
644
645 /*! @_nodoc
646 * ======== isSysbiosLoggerAutoCreated ========
647 * READ ONLY - used by XGCONF / LoggingSetup.xml
648 */
649 metaonly config Bool isSysbiosLoggerAutoCreated = true;
650
651 /*! @_nodoc
652 * ======== isLoadLoggerAutoCreated ========
653 * READ ONLY - used by XGCONF / LoggingSetup.xml
654 */
655 metaonly config Bool isLoadLoggerAutoCreated = true;
656
657 /*! @_nodoc
658 * ======== isMainLoggerAutoCreated ========
659 * READ ONLY - used by XGCONF / LoggingSetup.xml
660 */
661 metaonly config Bool isMainLoggerAutoCreated = true;
662
663 /*! @_nodoc
664 * ======== showNumCoresOption ========
665 * READ ONLY - used by XGCONF / LoggingSetup.xml
666 */
667 metaonly config Bool showNumCoresOption = false;
668 }


Library: Net
Package: Messages
Header: Poco/Net/PartSource.h
Description
This abstract class is used for adding parts or attachments to mail messages, as well as for uploading files as part of a HTML form.
Inheritance
Known Derived Classes: FilePartSource, PartStore, FilePartStore, StringPartSource
Member Summary
Member Functions: filename, getContentLength, headers, mediaType, stream
Constructors
PartSource
PartSource();
Creates the PartSource, using the application/octet-stream MIME type.
PartSource
PartSource(
const std::string & mediaType
);
Creates the PartSource, using the given MIME type.
Destructor
~PartSource
virtual ~PartSource();
Destroys the PartSource.
Member Functions
filename
virtual const std::string & filename() const;
Returns the filename for the part or attachment.
May be overridded by subclasses. The default implementation returns an empty string.
getContentLength
virtual std::streamsize getContentLength() const;
Returns the content length for this part which may be UNKNOWN_CONTENT_LENGTH if not available.
headers
MessageHeader & headers();
Returns a MessageHeader containing additional header fields for the part.
headers
const MessageHeader & headers() const;
Returns a MessageHeader containing additional header fields for the part.
mediaType
const std::string & mediaType() const;
Returns the MIME media type for this part or attachment.
stream
virtual std::istream & stream() = 0;
Returns an input stream for reading the part data.
Subclasses must override this method.
Variables
UNKNOWN_CONTENT_LENGTH
static const int UNKNOWN_CONTENT_LENGTH;


Removable chip with iron-icon and a secondary label:
iron-icon
Same chip, with animated transition:
Animated chip with more content:
Basic chip with single letter instead of an icon:
Basic chip with no icon


You probably know by now that I work on Launchpad, and that I help make Launchpad and the version control tool Bazaar play nicely together.
But if you aren't a programmer, neither of those sites are going to help you much in your never-ending quest to understand what it is I do all day. Certainly, I've always had trouble explaining version control to the uninitiated.
Rands (aka Michael Lopp, author of Managing Humans) describes version control as capturing context. If you still don't get it, ask questions here.


I'm a recent graduate of Ohio State University with a B.S. in Computer Science and Engineering. I have a passion for software development, an interest in learning new technologies, and a love for building things that matter. I'm currently living in Columbus, Ohio and seeking a job as a software engineer.


Plant Daycare
Fern
Give your plant some food:
Your food level is:
0
Add Blue Food
Add Green Food
Add Bad Food
Hydrate your plant with some water:
Your water level is:
0
Add Good Water
Add Bad Water
Shine some light on your plants:
Your sunlight level is:
0
Add Sun-light
Remove Sun-light
Daffodil
Give your plant some food:
Your food level is:
0
Add Blue Food
Add Green Food
Add Bad Food
Hydrate your plant with some water:
Your water level is:
0
Add Good Water
Add Bad Water
Shine some light on your plants:
Your sunlight level is:
0
Add Sun-light
Remove Sun-light
Make your plant bloom:
Your Plant bloom level is:
0
Add Bloom
Remove Bloom


Whitelist info
Key in name followed by email address e.g. Tiger Brokers<EMAIL_ADDRESS>Email 1
Email 2
Email 3
Email 4
Submit


Pacific Application Server
Tomcat Version
JVM Version
JVM Vendor
Hostname
IP Address
OS Name
OS Version
OS Architecture
Manage Web Applications
Documentation
OpenEdge Communities
OpenEdge Development Community
Copyright © 1993-2015 Progress Software Corporation. All rights reserved.


Gateway
BOT
30-Dec-19 09:08 PM
[dscrd-prt] <Cryptofist> I got it
Mocho used the bot, to pit us against each other
start drama
get cheap coins
[dscrd-prt] <Cryptofist> No?
[dscrd-prt] <mrlynch> doubt it
[dscrd-prt] <mrlynch> idk.. ask him
[dscrd-prt] <Cryptofist> it was mostly a joke
[dscrd-prt] <Cryptofist> but anyone could have done it, was my point
(edited)
[dscrd-prt] <mrlynch> @MOCHO 17 sir, did you manipulate poll? :troll:
[dscrd-prt] <Cryptofist> I bet it was samson
[dscrd-prt] <Cryptofist> I still go with zooko as my first guess
[dscrd-prt] <mrlynch> zooko only hates me
[dscrd-prt] <mrlynch> i think
[dscrd-prt] <Taegus> Yea anyone could have done it
[dscrd-prt] <Taegus> Its simply to dumb and obvious for anyone to not see it
[dscrd-prt] <mrlynch> whomever did isn't the brightest star
[dscrd-prt] <Taegus> Lol, exactly
@jiucrypto @TheInfamousKata @cryptomocho I think its easy to see that arrr community has manipulated that at the end when they were getting beat. Why would any project want to win 95 to 5. Bullshit
[dscrd-prt] <mrlynch> such silyness
[dscrd-prt] <Ahmed of $ETHO> Have an amazing day my friends
[dscrd-prt] <Llama> this twitter drama is so dumb
[dscrd-prt] <Llama> everyone go back to work
[dscrd-prt] <Diablo_> Polls in crypto are so meaningless and as you say just cause drama
[dscrd-prt] <Cryptofist> Now i wonder if it was coinzy
[dscrd-prt] <Diablo_> best to ignore them ♂
[dscrd-prt] <boot2thrill> (From $CCX) Just dropping in to say thanks for extending the invitation to join. Really hate to see the Twitter drama impact any mutual respect between us.
[dscrd-prt] <Llama> twitter drama always brings us together
[dscrd-prt] <ComputerGenie > drama? on twatter? surely not!
[dscrd-prt] <Cryptofist> Sir! Its true! it has gotten wild!
gasps in pleb
[dscrd-prt] <boot2thrill> We always welcome you over at Conceal. Please don't hesitate to stop by and chat or ask questions. And again, thanks for the warm welcome. Cheers.
[dscrd-prt] <ComputerGenie > wonders how long he can go before he wears out that welcome....


FileDelete(), FileRename(), FileCopy(), FileMove(),FileGetDiskHandle()
Most of the time, such actions as copying, deleting, and renaming files are handled by desktop management programs like GeoManager. However, other geodes may need to perform these actions themselves. For example, if you use a temporary file, you may wish to delete it when you're done. The GEOS file system provides routines for these situations. One file utility,
FileEnum()
, is elaborate enough to be treated in its own section; for details, see FileEnum()
.
To delete a file, call
FileDelete()
. This routine takes one argument, namely the address of a path string. If it can delete the file, it returns zero; otherwise, it returns an error code. Common error conditions include the following:
To change a file's name, call
FileRename()
. This routine takes two arguments: a pointer to the path string specifying the file, and a pointer to a string specifying the new name for the file. If successful,
FileRename()
returns zero; otherwise, it returns one of the above error codes.
To make a copy of a file, call
FileCopy()
. This routine takes four arguments: the handles of the source and destination disks (which may be the same), and the addresses of source and destination path strings. Passing a disk handle of zero indicates the current path's disk. Each string specifies a path relative to the location specified by the corresponding disk handle. If the handle is a disk handle, the path is relative to that disk's root. If the disk handle is a standard path constant, the path string is relative to that standard path. If the disk handle is null, the path is relative to the current working directory.
FileCopy()
will make a copy of the file in the specified location with the specified name. If a file with that name and location already exists, it will be overwritten.
FileCopy()
returns zero if successful. Otherwise it returns one of the following error codes:
To move a file from one directory to another, either on the same disk or on different disks, call
FileMove()
. This routine takes four arguments: the handles of the source and destination disks (which may be the same), and pointers to source and destination path strings. Passing a null disk handle indicates the current working directory. Each string specifies a path relative to the location specified by the corresponding disk handle. If the handle is a disk handle, the path is relative to that disk's root. If the disk handle is a standard path constant, the path string is relative to that standard path. If the disk handle is null, the path is relative to the current working directory. If the copy is successful,
FileMove()
will return zero; otherwise, it will return one of the above error codes.
If you want to find out the handle of the disk containing an open file, call
FileGetDiskHandle()
. This routine is passed the file handle; it returns the disk handle. This is useful if the geode has to prepare for a shutdown; it can get the disk handle with
FileGetDiskHandle()
, then save that handle with
DiskSave()
(see Saving and Restoring a Disk Handle
). With this information (and the file name), the geode will be able to reopen the file when it restarts.


File wayscript-mode.el defines a major mode for editing Wayscript under Emacs. Its main purpose is syntax highlighting (font locking). See the screen shot.
wayscript-mode.el
The files for this project are released under an MIT licence.


--- layout: post title: Pharsalus Battle date: '2015-01-20T07:30:28+01:00' categories: - Storyboards picture_url: https://film-Storyboards.tumblr.com/post/108640927206 ---


Honda Civic Leads Octavia, Corolla, Elantra In October 2019 Sales
by Surendhar MHonda Civic continued to dominate the executive sedan segment’s sales as it scored nearly twice as much tally as the Octavia
Honda Cars India introduced the tenth generation Civic in early March 2019 and made an impressive comeback that reflected on its first-month sales volume. With more than 2,200 units, the Civic did send shockwaves to the competitors before maintaining a steady monthly average.
In October 2019, the Civic did lead the sales charts by garnering a total of 436 units while Skoda’s Octavia finished second with 231 units. The Czech Republican sedan registered a total that was good enough for 24% YoY growth when compared to October 2018 when only 186 units were retailed.
The Toyota Corolla stood third with cumulative domestic sales of 90 units as against 242 units during the corresponding month last year with YoY decline of 63%. Despite receiving a facelift a few weeks ago, Hyundai’s Elantra ended last by garnering just 59 units as against 115 units during the same month last year with 49% de-growth.
| Executive Sedans | October 2019 Sales | October 2018 Sales |
| 1. Honda Civic | 436 | – |
| 2. Skoda Octavia | 231 | 186 |
| 3. Toyota Corolla | 90 | 242 |
| 4. Hyundai Elantra | 59 | 115 |
DataSource : AutoPunditz
The segment as a whole posted 816 units as against 543 units in October 2018 with an appreciable sales increase of 50%. The Elantra facelift entered the market as the country’s first connected sedan with Blue Link technology and a host of visual updates and interior changes as well as feature additions.
The Octavia is expected to get a brand new generation sometime next year in India and globally it is waiting make its debut on November 11 at Prague. The Corolla, on the other hand, received a thorough makeover in the international markets recently and reports suggest that it could be launched in India by the middle of next year.
In recent years, the D-segment for sedans has seen decreased popularity due to the arrival of premium SUVs, just as the C-segment comprising of Honda City, Maruti Suzuki Ciaz, Skoda Rapid, Toyota Yaris and Volkswagen Vento. We do expect the new-gen Octavia and Corolla to revive the segment’s fortunes, in a similar fashion to the Honda Civic.


Make a Video >
Full Video Makers give you total creative control with simple drag & drop tools. Mix characters, backgrounds and props. Direct the movement of the characters and camera.


| 882 | (A) | No nothir dede was to do þay hafe the dome ȝoldyn |
| 887 | (C) | None oþer dede was to done . his detħ þey haue dyȝte |
| 871 | (D) | Non oþer dede is to do þei have his dome yoldyn |
| 848 | (E) | non oþer dede for to do . but deme hym to dethe |
| (Ex) | ---- no text ---- | |
| 903 | (L) | Non oþer dede was to doun þey han his dome ȝolden |
| 821 | (P) | No nother dede es to do þan haf his dome ȝoledyn |
| 857 | (U) | Non other dede was to do / thei haue him demed |
| (V) | ---- no text ---- |


T
- Generic elementpublic class Tree23<T extends java.lang.Comparable<T>>
extends java.lang.Object
This class implements a Tree 2-3 Data Structure. This kind of structure stores the elements as a tree structure but balanced. So then, every leaf is at the same level in the tree.
It is focused on performing fast searchs.
Check this link for a deepest explanation of how it works.
| Constructor and Description |
|---|
Tree23() |
Tree23(java.util.Collection<T> elements) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(T element)
Adds a new element to the tree keeping it balanced.
|
boolean |
addAll(java.util.Collection<T> elements)
Adds all the elements into the tree.
|
boolean |
addAllSafe(java.util.Collection<T> elements)
Adds all the elements into the tree.
|
void |
clear()
Removes all of the elements from this Tree23 instance.
|
Tree23<T> |
clone()
Creates a copy of this Tree23 instance.
|
boolean |
contains(T element) |
T |
find(T element)
Search an element inside of the tree.
|
T |
findMax() |
T |
findMin() |
long |
getLevel() |
void |
inOrder()
Prints the elements of the tree in order.
|
void |
inOrder(java.util.function.Predicate<T> predicate)
Prints the elements of the tree in order if they accomplish a condition.
|
boolean |
isEmpty() |
boolean |
modify(T which,
T update)
Finds an element inside the tree and modifies it.
|
boolean |
remove(T element)
Deletes an element from the tree.
|
int |
size() |
public Tree23()
public Tree23(java.util.Collection<T> elements)
public boolean add(T element)
element
- The element to addpublic boolean addAll(java.util.Collection<T> elements)
elements
- the collection of elements to addpublic boolean addAllSafe(java.util.Collection<T> elements)
elements
- the collection of elements to addpublic void clear()
public Tree23<T> clone()
clone
in class java.lang.Object
public boolean contains(T element)
element
- The element to findpublic T find(T element)
element
- The element to findpublic T findMin()
public T findMax()
public long getLevel()
public void inOrder()
public void inOrder(java.util.function.Predicate<T> predicate)
predicate
- The condition that an element must accomplish to be printedpublic boolean isEmpty()
public boolean modify(T which, T update)
which
- The element to be modifiedupdate
- The update of the elementpublic boolean remove(T element)
element
- The element to deletepublic int size()


Example:
<!-- Stop at this slide.
(For example, when used on the last slide, this prevents the
presentation from wrapping back to the beginning.) -->
<div class="step stop">
The stop plugin is a pre-stepleave plugin. It is executed before
impress:stepleave
event. If the current slide has class="stop"
set, it will disable the next() command by setting the next slide to the current
slide.
Copyright 2016 Henrik Ingo (@henrikingo) Released under the MIT license.


Developers Spend Half Their Time Fixing Bugs
Joel Spolsky says:
Fixing bugs is only important when the value of having the bug fixed exceeds the cost of the fixing it. - Joel Spolsky
Bugs in legacy systems are wide spread. They live in code bases that you currently work on. Application have between 10 - 20 defects per 1,000 lines of code. Software tools have been developed to even find bugs before they are discovered by external users of the software.
If you are lucky, the legacy system you work on has tests. Other's don't. If you are working on a code base that doesn't have tests, I feel bad for you son, I got 99 defects but not having tests ain't one.
Working on a code base that doesn't have tests is awful because you will be introducing bugs as you are fixing others. This is something common when resolving vulnerabilities. A developer will fix a vulnerability incorrectly making a vulnerability harder to find but still exploitable.
50% of a Developer's Time
According to Rogue Wave Software, 50% of a developers time is spent debugging. A developer spends half his time fixing problems with code that's already written. This is the maintenance aspect of any software development lifecycle.
The problem is that most of these bugs are in code the original author didn't write. I don't mind bug fixing as long as the code is my own. But, when I'm not the person who wrote the original code, the code takes longer to identify problems.
Fixing bugs in another person's code is similar to reading a handwritten letter. Some letters are beautifully crafted by people who care about the language they are writing in. They use the right words, punctuate correctly, and make sure the letter is legible.
Other handwritten letters don't do this. The reader of the letter can get frustrated just by reading what the author has written. If the letter is illegible in can make it even harder to understand what the author originally intended.
Source code is the same way. Everyone who can program can write code. Not everyone can write legible code. When I need to fix a bug and it hits someone's illegible code, I get frustrated.
With legacy systems, a lot of time is spent fixing bugs on a code base the bug fixer didn't write. Hopefully the code base has unit tests and integration tests in place or fixing code can be like walking through a mine field.
Management and good developers want to make sure known bugs get fixed in a reasonable time, but how much time should be spent fixing bugs and how much time should be spent developing new features.
Approaches to Fixing Bugs
Brann spends all of his time fixing known bugs. When he isn't fixing bugs he is developing new features. The commenter's explain how this is impractical on large software projects and unworkable in the real world. Doesn't Brann live and develop in the real world?
I think Brann's methodology is interesting. I'm curious about the total amount of time Brann fixes bugs compared to time implementing new features. In a typical year how much time does Bran spend fixing bugs? 6 months?
Although other developers disagree with Brann, the opposite approach can also be taken. Infinite defects methodology is the approach to never fix bugs until after code is released. Microsoft encounter this problem and and changed to a zero defects methodology similar to Brann's.
The challenge with either approach is developers estimation of time to fix bugs is never right and they even discuss if it's better to overestimate or underestimate. What this means is that anytime the schedule estimates how much time a company will take to fix bugs, the estimation is wrong.


Known Issues on Mac¶
1. Running examples/example_signal.py will result in a Segmentation Fault 11. This is because Mac does not handle cython errors gracefully, therefore using a nonexistant file path will result in segmentation faults.
2. Trying to load files that do not exist results in a Segmentation Fault 11.
3. Running the following code:
import matplotlib.pyplot as plt
from pyslgr.MFCCFeatures import MFCCFeatures
feats = MFCCFeatures()
Gives the following error:
malloc: *** error for object 0x10d1d0b80: pointer being freed was not allocated***
set a breakpoint in malloc_error_break to debug
Abort trap: 6
To fix this error, simply import any pyslgr module before importing matplotlib.


Open House Sep. 2ndand 3rd from 12-3 PM: CLICK HERE TO SIGN UP NOW!
Spacious condo located on the 2nd floor in the Enclave on Bethel Rd. Secured entrance with intercom, off street parking, full access to the pool, tennis courts, basketball courts, and clubhouse are included. The unit features two large bedrooms with walk-in closets and one full bath. Beautiful Pergo wood flooring in the living and dining rooms with ceramic tile in the kitchen and bathroom. The kitchen is fully equipped and the unit has its own large capacity washer and dryer. Close to OSU, 315, grocery, restaurants, shopping, movies, and the airport. Dublin City School District.


{# This HTML includes client-side Nunjucks templates, we need escape it from the build-time template processing (that also uses Nunjucks) #} {% raw %} {% endraw %}


The number of days per month (is used when converting the duration from one unit to another).
The number of days per week (is used when converting the duration from one unit to another).
The number of hours per day (is used when converting the duration from one unit to another).
The calendar name
The flag, indicating, whether the "unspecified" time (time that does not belong to any interval)
is working (true
) or not (false
). Default value is true
This method adds a single CalendarIntervalMixin to the internal collection of the calendar
This method adds an array of CalendarIntervalMixin to the internal collection of the calendar
Checks if an entity has been shadowed
Shadows an entity from a project until {@link #function~unshadow unshadow()} method call.
Shadowed entity do not affect the project, their atoms are excluded from the graph and thus do not take part in the propagation process.
Unshadows entity preveosly shadowed by {@link #function~shadow shadow()} call.
Generated using TypeDoc
Calendar mixin type
This mixin represent a calendar in the Gantt chart


Success!
Resources generated successfully!
It may take up to 30 minutes to appear in your account.
If you prefer to download a "hacked" version of your game, with all resources unlocked, please choose one option below:
MIRROR 1
MIRROR 2
MIRROR 3
MIRROR 4
Conference Pingendo


Send any questions using the Send Us a Message link below, or submit your question to StackOverflow using with the 'allen-sdk' tag.
If you encounter any problems using the AllenSDK, please create an issue on Github's issue tracker.


rotten > Library > History > Espionage > Mossad
Mossad
The Israeli spy organization, perhaps the best in the world. Among their successes was the illegal kidnapping of Adolf Eichmann from Argentina in 1960.
Profited from the world's most heinous software piracy incident when they received the PROMIS database software from the U.S. Justice Department (the INSLAW case.)
May have tried to recruit Henri Paul, Lady Diana's driver during her fatal automobile accident.
Timeline
| 1 Apr 1951 |
Mossad formed by Israeli Prime Minister David Ben Gurion. |
| 11 May 1960 |
Four Mossad agents abduct fugitive Nazi war criminal Adolf Eichmann from a bus stop in Buenos Aires. |
| 5 Nov 1991 |
Alleged in book Gideon's Spies to have killed media mogul Robert Maxwell. What is known is that Maxwell died in highly unusual circumstances in his yacht in the Canary Islands. |
| 25 Sep 1997 |
Hamas official Khaled Mashaal survives an assassination attempt in Amman, Jordan, after agents of the Israeli Mossad injected him with an unidentified chemical. Jordanian King Hussein intervened on his behalf, citing a 1994 peace treaty, and Israel was forced to supply the antidote for Mashall and release Sheikh Ahmed Yassin from prison in exchange for the liberation of the two Israeli assassins. |
Pornopolis |
Rotten |
Faces of Death |
Famous Nudes
|


Welcome to Python games’s documentation!¶
Indices and tables¶
Modules¶
app (main module)¶
Main module - game initialisation and (pygame) flow
-
class
app.
App
¶ pygame app
-
static
on_cleanup
()¶ Called after main game loop, any clean up actions
-
on_event
(event)¶ Process a pygame event
Parameters: event (pygame.event.EventType) – the event to process
-
on_execute
()¶ Main code - initialise, main game loop, clean up
-
on_init
()¶ Initialisation, called before the main game loop
-
static
-
app.
init_game
(player_details)¶ Create players, table and holding area
Parameters: player_details (list(tuple(player name, AI/None))) – the players
buttons (clickable screen areas)¶
Defines an action to be executed when a mouse click happens inside a specific rectangle (relative to a player’s area, if specified)
Was the mouse clicked within this button’s rectangle
Parameters: mouse_position (int x, int y) – The position of the mouse click Returns: True if this button was clicked on Return type: bool
Embody (draw) the button
Slightly larger version of the button area. Used to draw a line around the game piece, to show it is a button
Returns: slightly larger version of self.rectangle Return type: vector.Vector
A list of buttons - which can respond to a mouse click by executing the action which corresponds with the mouse’s location
Add a button, as specified, to this collection
Parameters: - rectangle – The area which will respond to a mouse click
- action – (subclass of AbstractAction) action to take when mouse is clicked
- text – If specified, show this as an actual button, including the text
- player_order (int) – If specified, show in the specified player corner
Returns: the button (class Button) that this created
Return type: Button/VisibleButton
- Process the action for any button in self.buttons with the mouse click
- position inside the button’s rectangle
Parameters: mouse_position – The (x, y) coordinates of the mouse
A conventional button: rectangle with text
colour_count (how many chips of each type do we have)¶
-
class
colour_count.
ChipCost
(colour_count=None, raw_colour_count=None)¶ A ColourCount subclass which can be shown on a card as its cost
-
class
colour_count.
ChipStacks
(colour_count=None, raw_colour_count=None)¶ A ColourCount subclass which can be shown as a stack of chips in the supply
-
class
colour_count.
ColourCount
(colour_count=None, raw_colour_count=None)¶ - Maintain a count of chips by type (colour), or of cards by chip type
- they ‘produce’
-
covers_cost
(chip_cost)¶ Do the chips we’ve counted cover the cost specified. Yellow chips are used as wild cards
Parameters: chip_cost (ColourCount) – The cost to cover Returns: True, if this covers the cost Return type: bool
-
filter
(remove_blanks=False)¶ Different way(s) to filter down the colour count
Parameters: remove_blanks (bool) – If True, remove any dict keys with 0 value Returns: if remove_blanks, colour count for non-zero values, else original colour count Return type: ColourCount
-
items
()¶ Returns: list(key:value) of the colour count
-
class
colour_count.
PlayerCardStack
(colour_count=None, raw_colour_count=None)¶ A ColourCount subclass representing the ‘reward’ (in chip count) given by a player’s cards
-
class
colour_count.
PlayerChipStack
(colour_count=None, raw_colour_count=None)¶ A ColourCount subclass which can be shown as a stack of chips for a player
game (the game state)¶
-
class
game.
Game
¶ Container for game state: components, buttons, players and mechanics
-
current_player
¶ Returns: The active player Return type: player.Player
-
embody
()¶ Embody the game: draw the table top, the components and score, and create the buttons
-
init_game
(players, buttons, components, mechanics)¶ Parameters: - players (list(player.Player)) – The 2, 3 or 4 players in the game
- buttons (button.ButtonCollection) – The active buttons
- components (game_component_database.ComponentDatabase) – All the game pieces in the game, including in the supply, the holding areas and the players’ areas
- mechanics (game_mechanics.GameMechanics) – Calculates the valid moves, winner, score and other game mechanics
-
last_player
¶ Is the current player the last player in this round
Returns: True if this is the last player Return type: bool
-
game_actions (what happens when you press a button)¶
-
class
game_actions.
Cancel
¶ Cancel the user’s action - return the pieces to their original location
-
static
activate
()¶ Return the pieces to where they came from
Returns: True, to trigger a screen redraw
-
static
game_components (cards, chips and tile class definitions)¶
Classes for the game components: cards, chips and tiles. Components use a state machines to track where they are
-
class
game_components.
AbstractGameComponent
¶ Abstract game component, sets up the state machine
-
move_back
()¶ Move got cancelled, move the piece back
-
stash_state
()¶ Remember the previous state, in case the current move gets cancelled
-
-
class
game_components.
Card
(chip_cost, chip_type, points, row)¶ A card, which consists of:
- chip cost: a set of chips to be paid when buying this card
- reward chip: the discount which this card gives towards
- buying another card
- points: victory points
-
class
game_components.
Chip
(chip_type)¶ A single chip
-
class
game_components.
Tile
(chip_cost, points)¶ A single nobles tile
settings¶
-
class
settings.
Config
¶ Configuration - mostly the (relative) position of various screen elements
utils (utility functions)¶
-
class
utils.
SplitIntoIncludedAndExcluded
(source, target)¶ Split up pieces in source and target:
- self.included: both in source + target
- self.excluded: in target but not in source
- self.remaining: in source but not in target
Chips of the same colour are treated as the same piece. Unlike sets, the lists can contain multiple pieces of the same type. This is typically used to work out whether a player can take a piece, halfway through a turn, based on the list of available moves
-
utils.
chip_type_for_colour_name
(colour_name)¶ Convert a string (colour) to a ChipType
Parameters: colour_name (str) – colour, e.g. ‘red’ Returns: the ChipType for this colour
-
utils.
pieces_match
(a, b)¶ Are a and b either the same piece or the same colour of chip
Parameters: - a (game_components.AbstractGameComponent) – A game component
- b (game_components.AbstractGameComponent) – Another game component
Returns: True if A and B match


How to set a link to an existing page on the site using the Link Control.
Tip: Pages which are set as disabled are displayed in the list of pages. Disabled pages can be linked to, however the link will only work for Administrators and SuperUsers. Other users will see the link but nothing will happen when they click on it. It is therefore recommended that you test page links.


For this project, my aim is to play around with MakeyMakey and to see how it can be connect with other mundane objects which already in my room. I started with fruits then tried using copper tape, sewing machine, needles to build up the circuit. And I connected the key with noteout in MAX, so that the function of these physical objects were shifted into a simple instrument.
This is my favorite part of the exploration. The noise from the sewing machine combining with the piano sound triggered by the machine, actually provide me a tuneful mix. Also, there is something related with the labor， textile females and anthem.


Minecraft Earth gets pop-up 'Mobs at the Park' event in select cities
Remember to take pictures.
by Asher MadanWhat you need to know
- Minecraft Earth is an AR game that combines exploration and building mechanics.
- If you're in New York City, London, or Sydney, you'll be able to attend pop-up events.
- Doing so will unlock the Jolly Llama early.
- The game is available for free on the Apple App and the Google Play stores.
Recently, Minecraft Earth Early Access went live in the United Kingdom and the United States. The download is a free-to-play game blends augmented reality (AR) with a new version of Minecraft built on the Bedrock Engine. The goal is to build structures and explore a superimposed Minecraft world wherever you are.
At X019, Microsoft's celebration of everything gaming, the company revealed the "Mobs at the Park" event. If you're in New York City, London, or Sydney, you'll be excited to know that life-sized statues of interactive mobs will be popping up starting November 16.
The press release Windows Central received added that the statues are life-sized creations of the Muddy Pig, Moobloom, and the Jolly Llama feature a scannable QR code to play an exclusive new adventure built by the Minecraft Earth team. Once players complete the adventure, they'll receive exclusive access to the Jolly Llama in-game before it's globally available in December.
The life-sized statues can be found in the following locations.
- Hudson Yards in New York City from November 16 to 17, November 23 to 24, and November 30 to December 1.
- The Queens Walk in London from November 16 to 17, November 23 to 24, and November 30 to December 1.
- Campbell's Cove in Sydney from November 16 to 17, November 23 to 24, and November 30 to December 1.
- There will also be a special appearance of the statues at Hudson Yards in New York City on Black Friday, November 29.
Keep in mind that the pop-ups will only be available from 10 AM to 7 PM.
Block By Block
Minecraft Earth
Minecraft becomes a reality with AR.
Minecraft Earth takes virtual building, exploration, and discoveries to the next level. Microsoft's upcoming augmented reality flavor of the hit blockbuster brings Minecraft into the real world, rivaling successes of Pokemon GO.
We may earn a commission for purchases using our links. Learn more.


| 1.1 | 1.2 | 1.3 |
| 2.1 | 2.2 | 2.3 |
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Nor dare I question with my jealous thought
Where you may be, or your affairs suppose,
But like a sad slave stay and think of nought
Save where you are how happy you make those.
William Shakespeare


Word 6.0 document For best results print this from WordPad or Word. HyperText Markup Language Guaranteed to fit on one page when printed from your web browser with 12-point arial font. GIF (coming soon)


Welcome aboard! I'm Tarick B. Khadra. I played college football, taught and coached highschool and college students and served 12 years in the US Navy before entering the technology and communications sector and founding Khadfish, LLC- a service-disabled veteran-owned small business.
Education
2019-2020 University Of Maryland
GC, Graduate Studies in Multimedia Journalism
2015-2017 Defense Language Institute
2/2, Levantine-Arabic / Persian-Farsi
2004-2005 University of North Florida
MA, English Language, Literature & Letters
1996-2001 Furman University
BS, Health Sciences / Minor, Spanish


Cypress is a system that allows citizens to report issues they encounter in their city. It will allow them to follow up on the process of their problem from the day it’s reported until it is resolved.
In order to make a report you must register for an account and then go into the Submit Report tab and enter the details of your problem.
All reports are automatically processed through the system and are reviewed by the Toronto City Council as soon as possible. The app will continuously keep the user updated through a series of notifications until the reported problem has been resolved.
If you have made a mistake while making a report just go into the View Reports tab and click the edit button next to your report.
This site will collect and maintain personal information provided by its users, including their names, addresses, mobile telephone numbers, email addresses, and so forth. The information provided will be used and will only be accessible by the City of Toronto. It will not be used in a predatory way.


| 1 | package org.jsoup.examples; | |
| 2 | ||
| 3 | import org.jsoup.Jsoup; | |
| 4 | import org.jsoup.helper.StringUtil; | |
| 5 | import org.jsoup.helper.Validate; | |
| 6 | import org.jsoup.nodes.Document; | |
| 7 | import org.jsoup.nodes.Element; | |
| 8 | import org.jsoup.nodes.Node; | |
| 9 | import org.jsoup.nodes.TextNode; | |
| 10 | import org.jsoup.select.Elements; | |
| 11 | import org.jsoup.select.NodeTraversor; | |
| 12 | import org.jsoup.select.NodeVisitor; | |
| 13 | ||
| 14 | import java.io.IOException; | |
| 15 | ||
| 16 | /** | |
| 17 | * HTML to plain-text. This example program demonstrates the use of jsoup to convert HTML input to lightly-formatted | |
| 18 | * plain-text. That is divergent from the general goal of jsoup's .text() methods, which is to get clean data from a | |
| 19 | * scrape. | |
| 20 | *
 | |
| 21 | * Note that this is a fairly simplistic formatter -- for real world use you'll want to embrace and extend. | |
| 22 | *
 | |
| 23 | *
 | |
| 24 | * To invoke from the command line, assuming you've downloaded the jsoup jar to your current directory:
 | |
| 25 | *
java -cp jsoup.jar org.jsoup.examples.HtmlToPlainText url [selector]
 | |
| 26 | * where url is the URL to fetch, and selector is an optional CSS selector. | |
| 27 | * | |
| 28 | * @author Jonathan Hedley<EMAIL_ADDRESS>| |
| 29 | */ | |
| 30 | public class HtmlToPlainText { | |
| 31 | private static final String userAgent = "Mozilla/5.0 (jsoup)"; | |
| 32 | private static final int timeout = 5 * 1000; | |
| 33 | ||
| 34 | public static void main(String... args) throws IOException { | |
| 35 |
3
1. main : negated conditional → SURVIVED 2. main : negated conditional → SURVIVED 3. main : removed call to org/jsoup/helper/Validate::isTrue → SURVIVED |
Validate.isTrue(args.length == 1 || args.length == 2, "usage: java -cp jsoup.jar org.jsoup.examples.HtmlToPlainText url [selector]"); |
| 36 | final String url = args[0]; | |
| 37 |
1
1. main : negated conditional → SURVIVED |
final String selector = args.length == 2 ? args[1] : null; |
| 38 | ||
| 39 | // fetch the specified URL and parse to a HTML DOM | |
| 40 | Document doc = Jsoup.connect(url).userAgent(userAgent).timeout(timeout).get(); | |
| 41 | ||
| 42 | HtmlToPlainText formatter = new HtmlToPlainText(); | |
| 43 | ||
| 44 |
1
1. main : negated conditional → SURVIVED |
if (selector != null) { |
| 45 | Elements elements = doc.select(selector); // get each element that matches the CSS selector | |
| 46 | for (Element element : elements) { | |
| 47 | String plainText = formatter.getPlainText(element); // format that element to plain text | |
| 48 |
1
1. main : removed call to java/io/PrintStream::println → NO_COVERAGE |
System.out.println(plainText); |
| 49 | } | |
| 50 | } else { // format the whole doc | |
| 51 | String plainText = formatter.getPlainText(doc); | |
| 52 |
1
1. main : removed call to java/io/PrintStream::println → NO_COVERAGE |
System.out.println(plainText); |
| 53 | } | |
| 54 | } | |
| 55 | ||
| 56 | /** | |
| 57 | * Format an Element to plain-text | |
| 58 | * @param element the root element to format | |
| 59 | * @return formatted text | |
| 60 | */ | |
| 61 | public String getPlainText(Element element) { | |
| 62 | FormattingVisitor formatter = new FormattingVisitor(); | |
| 63 |
1
1. getPlainText : removed call to org/jsoup/select/NodeTraversor::traverse → SURVIVED |
NodeTraversor.traverse(formatter, element); // walk the DOM, and call .head() and .tail() for each node |
| 64 | ||
| 65 |
1
1. getPlainText : mutated return of Object value for org/jsoup/examples/HtmlToPlainText::getPlainText to ( if (x != null) null else throw new RuntimeException ) → TIMED_OUT |
return formatter.toString(); |
| 66 | } | |
| 67 | ||
| 68 | // the formatting rules, implemented in a breadth-first DOM traverse | |
| 69 | private class FormattingVisitor implements NodeVisitor { | |
| 70 | private static final int maxWidth = 80; | |
| 71 | private int width = 0; | |
| 72 | private StringBuilder accum = new StringBuilder(); // holds the accumulated text | |
| 73 | ||
| 74 | // hit when the node is first seen | |
| 75 | public void head(Node node, int depth) { | |
| 76 | String name = node.nodeName(); | |
| 77 |
1
1. head : negated conditional → SURVIVED |
if (node instanceof TextNode) |
| 78 |
1
1. head : removed call to org/jsoup/examples/HtmlToPlainText$FormattingVisitor::append → NO_COVERAGE |
append(((TextNode) node).text()); // TextNodes carry all user-readable text in the DOM. |
| 79 |
1
1. head : negated conditional → SURVIVED |
else if (name.equals("li")) |
| 80 |
1
1. head : removed call to org/jsoup/examples/HtmlToPlainText$FormattingVisitor::append → SURVIVED |
append("\n * "); |
| 81 |
1
1. head : negated conditional → SURVIVED |
else if (name.equals("dt")) |
| 82 |
1
1. head : removed call to org/jsoup/examples/HtmlToPlainText$FormattingVisitor::append → SURVIVED |
append(" "); |
| 83 |
1
1. head : negated conditional → SURVIVED |
else if (StringUtil.in(name, "p", "h1", "h2", "h3", "h4", "h5", "tr")) |
| 84 |
1
1. head : removed call to org/jsoup/examples/HtmlToPlainText$FormattingVisitor::append → SURVIVED |
append("\n"); |
| 85 | } | |
| 86 | ||
| 87 | // hit when all of the node's children (if any) have been visited | |
| 88 | public void tail(Node node, int depth) { | |
| 89 | String name = node.nodeName(); | |
| 90 |
1
1. tail : negated conditional → SURVIVED |
if (StringUtil.in(name, "br", "dd", "dt", "p", "h1", "h2", "h3", "h4", "h5")) |
| 91 |
1
1. tail : removed call to org/jsoup/examples/HtmlToPlainText$FormattingVisitor::append → SURVIVED |
append("\n"); |
| 92 |
1
1. tail : negated conditional → SURVIVED |
else if (name.equals("a")) |
| 93 |
1
1. tail : removed call to org/jsoup/examples/HtmlToPlainText$FormattingVisitor::append → SURVIVED |
append(String.format(" <%s>", node.absUrl("href"))); |
| 94 | } | |
| 95 | ||
| 96 | // appends text to the string builder with a simple word wrap method | |
| 97 | private void append(String text) { | |
| 98 |
1
1. append : negated conditional → SURVIVED |
if (text.startsWith("\n")) |
| 99 | width = 0; // reset counter if starts with a newline. only from formats above, not in natural text | |
| 100 |
1
1. append : negated conditional → SURVIVED |
if (text.equals(" ") && |
| 101 |
3
1. append : Replaced integer subtraction with addition → NO_COVERAGE 2. append : negated conditional → NO_COVERAGE 3. append : negated conditional → NO_COVERAGE |
(accum.length() == 0 || StringUtil.in(accum.substring(accum.length() - 1), " ", "\n"))) |
| 102 | return; // don't accumulate long runs of empty spaces | |
| 103 | ||
| 104 |
3
1. append : changed conditional boundary → SURVIVED 2. append : Replaced integer addition with subtraction → SURVIVED 3. append : negated conditional → SURVIVED |
if (text.length() + width > maxWidth) { // won't fit, needs to wrap |
| 105 | String words[] = text.split("\\s+"); | |
| 106 |
3
1. append : changed conditional boundary → NO_COVERAGE 2. append : Changed increment from 1 to -1 → NO_COVERAGE 3. append : negated conditional → NO_COVERAGE |
for (int i = 0; i < words.length; i++) { |
| 107 | String word = words[i]; | |
| 108 |
2
1. append : Replaced integer subtraction with addition → NO_COVERAGE 2. append : negated conditional → NO_COVERAGE |
boolean last = i == words.length - 1; |
| 109 |
1
1. append : negated conditional → NO_COVERAGE |
if (!last) // insert a space if not the last word |
| 110 | word = word + " "; | |
| 111 |
3
1. append : changed conditional boundary → NO_COVERAGE 2. append : Replaced integer addition with subtraction → NO_COVERAGE 3. append : negated conditional → NO_COVERAGE |
if (word.length() + width > maxWidth) { // wrap and reset counter |
| 112 | accum.append("\n").append(word); | |
| 113 | width = word.length(); | |
| 114 | } else { | |
| 115 | accum.append(word); | |
| 116 |
1
1. append : Replaced integer addition with subtraction → NO_COVERAGE |
width += word.length(); |
| 117 | } | |
| 118 | } | |
| 119 | } else { // fits as is, without need to wrap text | |
| 120 | accum.append(text); | |
| 121 |
1
1. append : Replaced integer addition with subtraction → SURVIVED |
width += text.length(); |
| 122 | } | |
| 123 | } | |
| 124 | ||
| 125 | @Override | |
| 126 | public String toString() { | |
| 127 |
1
1. toString : mutated return of Object value for org/jsoup/examples/HtmlToPlainText$FormattingVisitor::toString to ( if (x != null) null else throw new RuntimeException ) → SURVIVED |
return accum.toString(); |
| 128 | } | |
| 129 | } | |
| 130 | } | |
Mutations | ||
| 35 |
1.1 2.2 3.3 |
|
| 37 |
1.1 |
|
| 44 |
1.1 |
|
| 48 |
1.1 |
|
| 52 |
1.1 |
|
| 63 |
1.1 |
|
| 65 |
1.1 |
|
| 77 |
1.1 |
|
| 78 |
1.1 |
|
| 79 |
1.1 |
|
| 80 |
1.1 |
|
| 81 |
1.1 |
|
| 82 |
1.1 |
|
| 83 |
1.1 |
|
| 84 |
1.1 |
|
| 90 |
1.1 |
|
| 91 |
1.1 |
|
| 92 |
1.1 |
|
| 93 |
1.1 |
|
| 98 |
1.1 |
|
| 100 |
1.1 |
|
| 101 |
1.1 2.2 3.3 |
|
| 104 |
1.1 2.2 3.3 |
|
| 106 |
1.1 2.2 3.3 |
|
| 108 |
1.1 2.2 |
|
| 109 |
1.1 |
|
| 111 |
1.1 2.2 3.3 |
|
| 116 |
1.1 |
|
| 121 |
1.1 |
|
| 127 |
1.1 |


I'm David Norton; husband, dad, mentor, and a software developer in Kansas City, Missouri. Curious and deliberate by nature, I am happy to learn and happy to teach.
For inquiries please contact<EMAIL_ADDRESS>This static site was developed using a derivative of makesite.py


FormField demo
Username
That username is already taken!
Email
About you
I agree to all marketing material
Sign up
Username
That username is already taken!
Email
About you
I agree to all marketing material
Sign up


| v9 | v10 |
|---|---|
$max-width |
Deprecated, access from $carbon--grid-breakpoints |
$columns |
Deprecated, access from $carbon--grid-breakpoints |
$grid-breakpoints |
Replaced with $carbon--grid-breakpoints |
$gutter-breakpoints |
Deprecated |
$grid-gutter-breakpoints |
Deprecated |
grid mixin |
Replaced with carbon--grid |
breakpoint function |
Replaced with carbon--breakpoint |
gutter function |
Deprecated |
grid-gutter function |
Deprecated |
column-size mixin |
Replaced with carbon--make-col |
| v9 | v10 |
|---|---|
| xs | sm |
| sm | md |
| md | lg |
| lg | xlg |
| xl | max |
| xxl | Removed |
| v9 | v10 |
|---|---|
bx--grid |
No change |
bx--row |
No change |
bx--col-<breakpoint>-<span> |
Minimal change, replace breakpoint with new name |
bx--offset-<breakpoint>-<span> |
Minimal change, replace breakpoint with new name |


operator <<
for printing a priority queue?
It seems like the operator would need access to the private data inside of the priority queue object.
<<
operator in our assignment is declared with a special keyword called friend
that makes it so that this operator is able to directly access the private data inside the priority queue if needed.
new
keyword.
clear
method?
Don't they do the same thing, deleting all elements from the queue?
clear
method is called explicitly when a client wants to wipe the elements and then start over and use the same list to store something else.
A destructor is called implicitly by C++ when an object is being thrown away forever; it won't ever be used to store anything else after that.
The implementations might be similar, but their external purpose is different.
PQNode
and PQNode*
? Which one should I use?
PQNode
; you want only PQNode*
.
The former is an object, the latter is a pointer to an object.
You always want pointers to PQNode
objects in this assignment because objects created with new
live longer; they are not cleaned up when the current function exits.
PQNode
?
new
keyword. Like this:
PQNode* node = new PQNode();
Or, you can pass any of the value
, priority
, and next
values on construction:
PQNode* node = new PQNode(value, priority, next);
You *must* declare all your nodes as pointers; do not declare them as regular objects like the following code, because it will break when the list node goes out of scope:
// do not do this! PQNode node; // bad bad bad node.data = 42; // bad bad bad node.next = nullptr; // bad bad bad ...
>= =< > < == !=
current->next->data
before checking whether current
or current->next
are NULL
.


TNPSC group 1 service result declared: Check merit list, interview dates, salary
by Careers DeskBy: Careers Desk | New Delhi | Published: December 9, 2019 5:29:46 pm
TNPS Mains result: Check at tnpsc.gov.in . (Representational image)
TNPSC group 1 service: The Tamil Nadu Public Service Commission (TNPSC) has released the result for the recruitment exam conducted for the group 1 services. The result is available at the official website, tnpsc.gov.in. The TNPSC group I Mains exam was conducted on July 12 and 13. Those who have cleared the TNPSC exam will be called for an oral test or interview round.
The final leg of the recruitment or the TNPSC group 1 service interview will be conducted from December 23 to 31, 2019 at the office of the Tamil Nadu Public Service Commission, TNPSC Road, Chennai-600 003. Candidates need to bring their original certificates along with them to the interview round.
TNPSC group 1 service result: Steps to check
Step 1: Visit the official website, tnpsc.gov.in
Step 2: On the homepage, click on the link ‘TNPSC group I result’ under ‘what’s new’
Step 3: You will be redirected to a new page
Step 4: Check roll number
Selected candidates will be recruited at pay level 22 Rs 56,100-1,77,500, according to the official release.
For all latest Govt Jobs 2019, Railway Jobs, Bank Jobs and SSC Jobs log on to IndianExpress.com.  Stay Connected.
For all the latest Jobs News, download Indian Express App
© IE Online Media Services Pvt Ltd


Cook Raja
Register a Cook
Search
12
Cooks found in BTM Layout
Veg Only
Both Veg & Non-Veg
North Indian
South Indian
Speaks Hindi
Safety Tips for Customers
Meet seller at a safe location
Check the item before you buy
Pay only after collecting item


This lab covers some fundamental plots of 1-D data.
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd
sns.set_style('white')
%matplotlib inline
import warnings
warnings.filterwarnings("ignore")
Remember that, if you want to play with visualization tools, you can use not only the real data, but also fake data. Actually it is a nice way to experiment because you can control every aspect of data. Let's create some random numbers.
The function np.random.randn()
generates a sample with size $N$ from the standard normal distribution.
print( np.random.rand(10) )
The following small function generates $N$ normally distributed numbers:
def generate_many_numbers(N=10, mean=5, sigma=3):
return mean + sigma * np.random.randn(N)
Generate 10 normally distributed numbers with mean 5 and sigma 3:
data = generate_many_numbers(N=10)
print(data)
The most immediate method to visualize 1-D data is just plotting it. Here we can use the scatter()
function to draw a scatter plot. The most basic usage of this function is to provide x and y.
x = np.arange(1,11)
y = x + 5
print(x)
print(y)
plt.scatter(x, y)
But here we only have x (the generated data). We can set the y values to 0. The np.zeros_like(data)
function creates a numpy array (list) that have the same dimension as the argument.
print(np.zeros_like(data))
Now let's plot the generated 1-D data.
plt.figure(figsize=(10,1)) # set figure size, width = 10, height = 1
plt.scatter(data, np.zeros_like(data), s=50) # set size of symbols to 50. Change it and see what happens.
plt.gca().axes.get_yaxis().set_visible(False) # set y axis invisible
Ok, I think we can see all data points. But what if we have more numbers?
# TODO: generate 100 numbers and plot them in the same way.
data = np.random.rand(100)
plt.figure(figsize=(10,1))
plt.scatter(data, np.zeros_like(data), s = 50)
plt.gca().axes.get_yaxis().set_visible(False)
Of course we can't see much at the center. We can add "jitters" using the np.random.rand()
function.
data = generate_many_numbers(N=100)
# TODO: create a list of 100 random numbers using np.random.rand()
# zittered_ypos = ??
zittered_ypos = np.random.rand(100)
plt.figure(figsize=(10,1))
plt.scatter(data, zittered_ypos, s=50)
plt.gca().axes.get_yaxis().set_visible(False)
Let's also make the symbol transparent. Here is a useful Google query, and the documentation of scatter()
also helps.
data = generate_many_numbers(N=200)
# From the last question
# zittered_ypos = ??
# TODO: implement this
# plt.figure(figsize=(10,1))
# plt.scatter( ?? )
# plt.gca().axes.get_yaxis().set_visible(False)
# TODO: implement this
zittered_ypos = np.random.rand(200)
plt.figure(figsize=(10,1))
plt.scatter(data, zittered_ypos, s = 50, alpha = 0.35)
plt.gca().axes.get_yaxis().set_visible(False)
We can use transparency as well as empty symbols.
# TODO: implement this
# data = ??
# zittered_ypos = ??
# TODO: implement this
# plt.figure(figsize=(10,1))
# plt.scatter( ?? )
# plt.gca().axes.get_yaxis().set_visible(False)
data = np.random.rand(1000)
zittered_ypos = np.random.rand(1000)
plt.figure(figsize=(10,1))
plt.scatter(data, zittered_ypos, s = 50, c = 'white', edgecolors='r')
plt.gca().axes.get_yaxis().set_visible(False)
Let's use real data. Load the IMDb dataset that we used before.
movie_df = pd.read_csv('imdb.csv', delimiter='\t')
movie_df.head()
Try to plot the 'Rating' information using 1D scatter plot. Does it work?
# TODO: plot 'rating'
rating = movie_df['Rating'].values
plt.figure(figsize=(10,1))
plt.scatter(rating, np.zeros_like(rating), s = 50)
plt.gca().axes.get_yaxis().set_visible(False)
There are too many data points! Let's try histogram. Actually pandas
supports plotting through matplotlib
and you can directly visualize dataframes and series.
movie_df['Rating'].hist()
Looks good! Can you increase or decrease the number of bins? Find the documentation here.
# TODO: try different number of bins
movie_df['Rating'].hist(bins = 30)
movie_df['Rating'].hist(bins = 20)
movie_df['Rating'].plot(kind='box', vert=False)
Or try seaborn's boxplot()
function:
sns.boxplot(movie_df['Rating'])
We can also easily draw a series of boxplots grouped by categories. For example, let's do the boxplots of movie ratings for different decades.
df = movie_df.sort('Year')
df.head()
One easy way to transform a particular year to the decade (e.g., 1874 -> 1870): divide by 10 and multiply it by 10 again.
In Python 3, the //
operator is used for integer division.
print(1874//10)
print(1874//10*10)
decade = (df['Year']//10) * 10
decade.head()
ax = sns.boxplot(x=decade, y=df['Rating'])
ax.figure.set_size_inches(12, 8)
Can you draw boxplots of movie votes for different decade?
# TODO
ax = sns.boxplot(x=decade, y=df['Votes'])
ax.figure.set_size_inches(12, 8)
What do you see? Can you actually see the "box"? The number of votes span a very wide range, from 1 to more than 1.4 million. One way to deal with this is to make a log-transformation of votes, which can be done with the numpy.log()
function.
log_votes = np.log(df['Votes'])
log_votes.head()
Can you draw boxplots of log-transformed movie votes for different decade?
# TODO
ax = sns.boxplot(x=decade, y = log_votes)
ax.figure.set_size_inches(12, 8)


Japan considers bill to continue public aid for commercial whaling
The ruling Liberal Democratic Party on Tuesday approved a plan to introduce a bill to continue providing public aid for commercial whaling, which the country resumed July 1 after a 31-year hiatus.
The party aims to have the bill submitted to the current session of the Diet as lawmaker-initiated legislation, with backing from groups within the LDP so that it will go into effect by the end of the year.
The aid for commercial whaling comes as catch limits render the practice unprofitable.
The proposed bill seeks to provide state support for promoting technologies related to catching and processing whales in an effort to wean commercial whaling off public subsidies.
The move is apparently a nod to the fisheries industry, which fears possible reductions in the state funding it is allocated.
The deployment of ships to crack down on acts of obstruction by foreign anti-whaling organizations was also included in the bill.
In response to opponents of whaling, such as countries in Europe, the United States and Australia, Japan has set catch quotas calculated using scientific data on whales, and continues to submit to the International Whaling Commission data on the number of whales confirmed through research in the Antarctic Ocean.
Japan’s government withdrew from the IWC in June due to what Tokyo saw as insurmountable rifts between Japan and countries opposed to commercial whaling.
GET THE BEST OF THE JAPAN TIMES
IN FIVE EASY PIECES WITH TAKE 5
JOIN THE CONVERSATION


Affected To This Event.
Ryan — the name taken by Melbourne-raised, Brooklyn-based Nick Murphy — writes, performs and records all of his own music.


Clan and Alliance Services
Clan Manager
Royal Name | Royal Leader
Order Name | Order Leader
Unit Name | Leader of Unit


State v. Jane H. Chun, et al. (A-96-06)
Argued April 5, 2007
Re-argued January 7, 2008 –- Decided March 17, 2008
HOENS, J., writing for the Court.
In this case, the Court addresses the scientific reliability of the Alcotest 7110 MKIII-C evidentiary breath-
testing device (Alcotest) and considers the admissibility of the Alcohol Influence Reports (AIRs) that it generates
for the prosecution of defendants under New Jersey drunk driving laws.
Defendants are twenty individuals charged with driving while intoxicated, N.J.S.A. 39:4-50, in Middlesex
County, who challenged the admissibility of Alcotest results in their individual proceedings. The Law Division
consolidated the cases to consider the reliability of the device. The State filed a motion requesting that the device be
recognized as scientifically reliable. The Law Division denied that motion, and the State filed an interlocutory
appeal. The Appellate Division remanded the matter, but before that proceeding could continue, the Court directly
certified the appeal pursuant to Rule 2:12-1 on December 14, 2005.
The Court remanded the case to retired Appellate Division Judge Michael Patrick King, sitting as a Special
Master, to conduct a hearing on the overall scientific reliability of the Alcotest. Following four months of
testimony, the Special Master issued a report on February 13, 2007. He concluded that the device was scientifically
reliable, conditioned on specific modifications and recommendations. After that report was issued, but before oral
arguments were heard, the manufacturer of the device, Draeger Safety Diagnostics (Draeger), moved for leave to
intervene, which motion the Court granted on March 27, 2007. Following oral arguments, the Court again remanded
the matter to the Special Master, this time to afford defendants an opportunity, following Draeger’s intervention, to
examine the source code that comprises the Alcotest software. After receipt of experts’ reports and further
testimony, the Special Master issued a supplemental report on November 8, 2007, in which he affirmed his original
finding of scientific reliability, contingent on several additional recommendations. Thereafter, the Court conducted
a second round of oral arguments.
Three distinct sets of challenges were raised regarding the use of Alcotest results in drunk driving
prosecutions. The first set of challenges related to how the machine measures a suspect’s blood alcohol
concentration (BAC). It was contested whether: (1) the Alcotest’s use of a 2100 to 1 blood/breath ratio is unreliable
because it overestimates the actual BAC of some individuals; (2) to avoid equal protection issues, all suspects,
instead of just women over the age of sixty, should be held to a minimum breath sample volume requirement of 1.2
liters of air; (3) a breath temperature sensor is necessary because the machine may overestimate the BAC of exhaled
breath above a certain temperature; (4) the machine’s tolerance, which is the deviation range within which test
measurements must fall to constitute a reliable result, is acceptable.
The next set of challenges related to the Alcotest’s programming and source code. Defendants argued that:
(1) the use of an algorithm to compensate for the depletion or “drift” of fuel cells artificially inflates results; (2) the
use of a “weighted averaging” algorithm, which places greater weight on later breath measurements than earlier
ones, also serves to artificially inflate results; (3) a buffer overflow error undermines the reliability of Alcotest
results in certain circumstances; (4) the lack of catastrophic error detection within the device undermines the
reliability of its results; and (5) the overall programming style fails to follow any design standard, and is so flawed
that it can not be relied on to produce accurate results.
The third set of challenges related to the admissibility of Alcotest results and foundational documents as
potentially violating Sixth Amendment rights under Crawford v. Washington.
HELD: The Court adopts, as modified, the Special Master’s reports and recommendations. Subject to certain
conditions, the Court holds that the Alcotest is scientifically reliable and that its results are admissible in drunk
driving prosecutions. The Court contemporaneously issues an Order vacating its January 10, 2006, stay of drunk
driving prosecutions, appeals, and sentencing, which shall proceed in accordance with the directives set forth
therein.
1.
There is sufficient credible evidence to support the continued use of a 2100 to 1 blood/breath alcohol ratio
to estimate BAC from a breath sample. The overwhelming evidence demonstrates that use of this ratio tends to
underestimate the actual BAC in the vast majority of persons whose breath is tested. Although there may be a small
number of individuals who are disadvantaged by a device that uses the 2100 to 1 blood/breath ratio, there is sound
scientific support for its continued utilization. (pp. 49-52)
2.
The four criteria used by the device to identify a valid breath sample are, with one modification,
appropriate. The Court adopts the recommendation that the minimum breath volume requirement should be
lowered, for women over sixty years of age only, from 1.5 liters to 1.2 liters and concludes that this modification
does not violate equal protection rights. Regardless of minimum breath requirements, no test will be accepted by the
machine until the infrared measurement plateaus, which only occurs when a suspect is expelling deep lung air.
Further, while selectively lowering the breath volume requirement will create a different level at which women over
sixty may be charged with refusal, the record demonstrates that this group, and only this group, may not have the
physiological capability of providing a larger sample. In pending prosecutions, and in future prosecutions based on
tests conducted prior to the implementation of the Court’s directives, an Alcotest AIR with an insufficient volume
error message may not be used as evidence of refusal against women over the age of sixty, unless they also provided
another sample of at least 1.5 liters. (pp. 52-65)
3.
The Court declines to adopt the recommendation that a breath temperature sensor be added to the Alcotest,
concluding that this device is both unnecessary and impractical. The record includes scant evidence of a correlation
between breath temperature and increased breath alcohol concentration, and no evidence that the theoretical increase
in breath alcohol concentration would translate into an inaccurately elevated BAC. Further, any potential effect is
ameliorated by the 2100 to 1 blood/breath ratio and by use of truncated, rather than rounded, results, both of which
serve to underestimate results. Requiring the addition of a breath temperature sensor would also present an
unreasonable maintenance burden on New Jersey’s breath testing program. (pp. 65-71)
4.
A tolerance range of an absolute 0.01 percent (plus or minus 0.005 percent from the mean) BAC standard,
coupled with the use of a like percentage range of tolerance expressed as five percent plus or minus deviation from
the mean, is both scientifically appropriate and consistent with the intention of the legislature in adopting per se
limits. The device must therefore be reprogrammed to comply with this standard. In pending prosecutions, and in
future prosecutions based on tests conducted prior to the implementation of the Court’s directives, in which the AIR
reports a BAC obtained using a doubled tolerance range, the reported breath samples must be reviewed to determine
whether the results meet this tolerance range. Any AIR that does not include two valid tests within tolerance under
this standard cannot be deemed to be sufficiently scientifically reliable to be admissible and shall not be admitted
into evidence as proof of a per se violation. (pp. 71-88)
5.
The Alcotest’s use of the fuel cell “drift” algorithm does not undermine its reliability. Scientific evidence
demonstrates that fuel cells begin to age as soon as they are put into service, and will eventually cause the Alcotest’s
electric chemical test to underestimate BAC. While there may be other means to compensate for this “drift,” those
means would not, in the end, be any more advantageous to defendants than the minor upward adjustment that the
algorithm effects. However, the Court adopts the Special Master’s recommendation that the devices be recalibrated
semi-annually instead of annually. A semi-annual calibration is consistent with the manufacturer’s
recommendations and provides a useful safeguard by affording a more regular opportunity to evaluate and replace
aging fuel cells. (pp. 89-95)
6.
The Court concludes that the Alcotest’s “weighted averaging” algorithm is an appropriate calculation that
results in a more accurate infrared measurement. It gives greater weight to the breath that, inevitably, includes the
deepest air drawn from the lungs. It therefore focuses the analysis on the portion of the breath sample that most
accurately represents the subject’s BAC. (pp. 95-96)
7.
The buffer overflow error is a real error in the programming that may cause the Alcotest to report incorrect
results in situations involving a third breath sample, which is taken only when the measurements from the first two
tests are not in tolerance. The buffer overflow programming error, which must be corrected, affects only the final
BAC result reported on the AIR. Because the infrared and electric chemical measurements for all of the test
samples are accurately reported on the AIR, the correct BAC value can, and must, be computed from those
measurements by applying a corrective formula. In pending prosecutions, and in future prosecutions based on tests
conducted prior to the implementation of the Court’s directives, the State must review all AIRs that include three
tests, perform the calculations to identify the correct BAC in accordance with the corrective formula, and provide
that data to the court. The calculations must be made a part of the evidence in any prosecution to facilitate appellate
review. (pp. 96-102)
8.
The Court finds adequate support in the record that catastrophic error detection should be re-enabled in the
Alcotest. This detection will allow the machine to recognize catastrophic errors and respond by shutting down.
There is no basis for the Court to conclude that the lack of catastrophic error detection could result in an inaccurate
AIR in any pending prosecution. (pp. 102-103)
9.
The Court finds the overall programming style and design of the source code to be acceptable. The
exhaustive review undertaken in this case revealed few actual errors or issues within the source code. There being
no evidence in the record that any other asserted shortcomings are more than stylistic or theoretical challenges, the
Court declines to require any specific programming standards at this time. (pp. 104-105)
10.
In future revisions to the Alcotest software, the State must: have the Alcotest software locked so that only
the manufacturer can make revisions to the source code; have the software revised so that the Alcotest identifies and
prints the software version that it is utilizing on each AIR; and give detailed notice consistent with due process to the
public and the New Jersey State Bar Association of any future revisions. (pp. 105-107)
11.
Draeger must make Alcotest training, comparable to that provided to the State, available to licensed New
Jersey attorneys and their experts at reasonable times and locations within New Jersey and at a reasonable cost. (p.
108)
12.
The twelve foundational documents identified by the Special Master must be provided during discovery in
all matters. The operator of the device shall be available to testify and shall produce evidence of his qualifications to
operate the device. The following foundational documents, evidencing the good working order of the machine, shall
be admitted into evidence in prosecutions based on Alcotest breath testing results: the most recent calibration
report, including control tests, linearity tests, and the credentials of the coordinator who performed the calibration;
the most recent new standard solution report prior to a defendant’s test; and the certificate of analysis of the 0.10
simulator solution used in a defendant’s control tests. These foundational documents are not “testimonial,” as
defined by the United States Supreme Court in Crawford v. Washington and its progeny. In so holding, the Court
aligns itself with the majority of other courts, which have found that such documents are business records, which do
not implicate the Confrontation Clause. (pp. 108-125)
13.
The AIR itself, a “statement” of a machine, is not testimonial under Crawford because it does not implicate
Crawford’s core concerns -- it is not a report of a past event, given in response to police interrogation, with the
purpose of establishing evidence that a defendant committed an offense. Although the AIR is not testimonial
evidence, the Court nevertheless mandates various safeguards to protect a defendant’s due process rights: the
opportunity to cross-examine the operator of the Alcotest, the routine production of all foundational documents in
discovery, and the admission of the core foundational documents into evidence at trial. (pp. 125-130)
The findings and conclusions of the Courts Special Master are ADOPTED, as MODIFIED. The matters
involved in these consolidated proceedings are REMANDED to the Law Division for further proceedings consistent
with this opinion and the accompanying Order.
JUSTICES LONG, LaVECCHIA, ALBIN, WALLACE, and RIVERA-SOTO join in JUSTICE
HOENS’ opinion. CHIEF JUSTICE RABNER did not participate.