pnmtopalm(1) pnmtopalm(1) NAME pnmtopalm - convert a portable anymap into a Palm pixmap SYNOPSIS pnmtopalm [-verbose] [-depth N] [-maxdepth N] [-colormap] [-transparent color] [-offset] [-rle-compression|-scanline-compression] [pnmfile] DESCRIPTION Reads a PNM image as input, from stdin or pnmfile. Produces a Palm pixmap as output. Palm pixmap files are either greyscale files 1, 2, or 4 bits wide, or color files 8 bits wide, so pnmtopalm automatically scales colors to have an appropriate maxval, unless you specify a depth or max depth. Input files must have an appropriate number and set of colors for the selected output constraints. This often means that you should run the PNM image through ppmquant before you pass it to pnmtopalm. Netpbm comes with sev‐ eral colormap files you can use with ppmquant for this purpose. They are palmgray2.map (4 shades of gray for a depth of 2), palmgray4.map (16 shades of gray for a depth of 4), and palmcolor8.map (232 colors in default Palm colormap). OPTIONS -verbose Display the format of the output file. -depth N Produce a file of depth N, where N must be either 1, 2, 4, 8, or 16. Any depth greater than 1 will produce a version 1 or 2 bit‐ map. Because the default Palm 8-bit colormap is not grayscale, if the input is a grayscale or monochrome pixmap, the output will never be more than 4 bits deep, regardless of the specified depth. Note that 8-bit color works only in PalmOS 3.5 (and higher), and 16-bit direct color works only in PalmOS 4.0 (and higher). How‐ ever, the 16-bit direct color format is also compatible with the various PalmOS 3.x versions used in the Handspring Visor, so these images may also work in that device. -maxdepth N Produce a file of minimal depth, but in any case less than N bits wide. If you specify 16-bit, the output will always be 16-bit direct color. -offset Fill in the nextDepthOffset field in the file header, to provide for multiple renditions of the pixmap in the same file. -colormap Build a custom colormap and include it in the output file. This is not recommended by Palm, for efficiency reasons. Otherwise, pnmtopalm uses the default Palm colormap for color output. -transparent color Marks one particular color as fully transparent. The format to specify the color is either (when for example orange) "1.0,0.5,0.0", where the values are floats between zero and one, or with the syntax "#RGB", "#RRGGBB" or "#RRRRGGGGBBBB" where R, G and B are hexadecimal numbers. This also makes the output bitmap a version 2 bitmap. Transparency works only on Palm OS 3.5 and higher. -rle-compression Specifies that the output Palm bitmap will use the Palm RLE com‐ pression scheme, and will be a version 2 bitmap. RLE compression works only with Palm OS 3.5 and higher. -scanline-compression Specifies that the output Palm bitmap will use the Palm scanline compression scheme, and will be a version 2 bitmap. Scanline com‐ pression works only in Palm OS 2.0 and higher. SEE ALSO palmtopnm(1), ppmquant(1), pnm(5) NOTES An additional compression format, packbits, was added with PalmOS 4.0. This package should be updated to be able to generate that. Palm pixmaps may contains multiple renditions of the same pixmap, in dif‐ ferent depths. To construct an N-multiple-rendition Palm pixmap with pnmtopalm, first construct renditions 1 through N-1 using the -offset option, then construct the Nth pixmap without the -offset option. Then concatenate the individual renditions together in a single file using cat. AUTHORS This program was originally written as ppmtoTbmp.c, by Ian Goldberg and George Caswell. It was completely re-written by Bill Janssen to add color, compression, and transparency function. Copyright 1995-2001 by Ian Goldberg, George Caswell, and Bill Janssen. 7 December 2000 pnmtopalm(1)


| Overview | Package | Class | Index | No Frames | Frames | Prev | Next |
Progress dialog
| TYPE Summary |
|---|
|
progress_dialog RECORD |
|
progress_dialog_value_type DECIMAL(32,6) |
| FUNCTION Summary | |
|---|---|
|
progress_dialog.cancel() Cancels the progress session. |
|
|
progress_dialog.close() Terminates a progress session. |
|
|
progress_dialog.free() Finalizes the progress dialog object usage. |
|
|
progress_dialog.getComment() RETURNS STRING Returns current progress comment. |
|
|
progress_dialog.getStep() RETURNS progress_dialog_value_type Returns progress step value. |
|
|
progress_dialog.getValue() RETURNS progress_dialog_value_type Returns current progress value. |
|
|
progress_dialog.getValueMax() RETURNS progress_dialog_value_type Returns progress end value. |
|
|
progress_dialog.getValueMin() RETURNS progress_dialog_value_type Returns progress start value. |
|
|
progress_dialog.initialize(title STRING, comment STRING, vmin progress_dialog_value_type, vmax progress_dialog_value_type, vstp progress_dialog_value_type) Initializes a progress dialog object for a known range of values. |
|
|
progress_dialog.initializeInfinite(title STRING, comment STRING) Initializes a progress dialog object for a unknown range of values. |
|
|
progress_dialog.interrupted() RETURNS BOOLEAN Returns TRUE if the progress was interrupted by user (INT_FLAG==TRUE). |
|
|
progress_dialog.isInfinite() RETURNS BOOLEAN Returns TRUE if the progress is infinite. |
|
|
progress_dialog.open() Opens the progress window. |
|
|
progress_dialog.progress(value progress_dialog_value_type) Sets the progress value and refreshes display. |
|
|
progress_dialog.setComment(comment STRING) Sets the comment without display refresh. |
|
|
progress_dialog.setExecTimeDisplayFormat(fmt STRING) Sets the format to show the execution time. |
|
|
progress_dialog.setIcon(resource STRING) Sets the image to be displayed as icon. |
|
|
progress_dialog.setRefreshInterval(itv INTERVAL SECOND TO FRACTION) Defines the time interval to refresh the display. |
|
|
progress_dialog.setValue(value progress_dialog_value_type) Sets the progressbar value without display refresh. |
|
|
progress_dialog.setValueDisplayFormat(fmt STRING) Sets the format to show the current value. |
|
|
progress_dialog.show() Displays current value in progress dialog window. |
|
|
progress_dialog.step() RETURNS BOOLEAN Increments the progress value and refreshes display. |
|
|
progress_dialog.stepInfinite() Increments the progress value in infinite mode and refreshes display. |
|
|
progress_dialog.wasCanceled() RETURNS BOOLEAN Returns TRUE if the progress was canceled. |
|
|
progress_dialog.withConfirmation(on BOOLEAN) Sets the flag to get an OK button for confirmation when done. |
|
|
progress_dialog.withInterruption(on BOOLEAN) Sets the flag to get a Cancel button to interrupt the process. |
|
|
progress_dialog.withRemainingExecTimeDisplay(on BOOLEAN) Sets the flag to show the remaining execution time. |
|
|
progress_dialog.withSqlInterruption(on BOOLEAN) Sets the flag to enable SQL interruption automatically. |
|
Cancels the progress session.
Simulates a user interruption. Closing the progress dialog will not ask for user confirmation if configured.
Terminates a progress session.
This method closes the progress dialog window. Progress dialog window can be re-opened with open()
Finalizes the progress dialog object usage.
Progress dialog object can be re-initialized with initialize()
Returns current progress comment.
Returns progress step value.
Returns current progress value.
Returns progress end value.
Returns progress start value.
Initializes a progress dialog object for a known range of values.
title
- The title of the progress window.comment
- The comment to be displayed in the progress window.vmin
- The minimum value for the progress bar.vmax
- The maximum value for the progress bar.vstp
- The step value to be used by the step() method.Initializes a progress dialog object for a unknown range of values.
title
- The title of the progress window.comment
- The comment to be displayed in the progress window.Returns TRUE if the progress was interrupted by user (INT_FLAG==TRUE).
The method resets INT_FLAG to FALSE, so callers do not have to reset it.
Returns TRUE if the progress is infinite.
Opens the progress window.
Sets the progress value and refreshes display.
This method is equivalent to setValue() + show().
value
- The value to be set in the progressbar.Sets the comment without display refresh.
comment
- The comment to be displayed in the progress window.Sets the format to show the execution time.
fmt
- The util.Intervale.format() style format, like "%H:%M:%S"Sets the image to be displayed as icon.
resource
- The filename/URL of the image resource.Defines the time interval to refresh the display.
The show(), progress() or step()/stepInfinite() methods may be called very often. To avoid to many network roundtrips with the front-end, the module defines a default refresh internal of 100 milliseconds.
If the refresh time interval is NULL, the display is refreshed each time one of the above methods are used.
itv
- The display refresh interval.Sets the progressbar value without display refresh.
value
- The value to be set in the progressbar.Sets the format to show the current value.
Note that in infinite mode, no value will be displayed.
fmt
- Can be "percentage" or a USING format like "----&.&&".Displays current value in progress dialog window.
The method will not refresh the display, if the last call was done before the refresh interval has expired.
Increments the progress value and refreshes display.
Only to be used when the limits are know, as a replacement for progress().
Increments the progress value in infinite mode and refreshes display.
Only to show progress when the limits are unknown (specified as NULL). This method can be called infinitely: The progress bar increments will be smaller and smaller, to never reach the end. Consider displaying execution time in the comment (withExecutionTime()) The display refresh is optimized: If this method is called many times in a loop, the progress value and the display refresh will be adapted, to avoid to much network roundtrips with the front-end.
DEFINE p fglprogress.progress_dialog, x INTEGER
...
CALL p.initialize("title","comment",NULL,NULL,NULL)
CALL p.open()
FOR x=1 TO 100000
CALL p.stepInfinite()
END FOR
CALL p.close()
Returns TRUE if the progress was canceled.
Sets the flag to get an OK button for confirmation when done.
on
- TRUE = with OK button, FALSE = without.Sets the flag to get a Cancel button to interrupt the process.
on
- TRUE = with Cancel button, FALSE = without.Sets the flag to show the remaining execution time.
The time format must be specified with setExecTimeDisplayFormat().
on
- TRUE to show the execution time as remaining time.Sets the flag to enable SQL interruption automatically.
The user interruption option must be enabled by withInterruption(TRUE).
When calling the open() method, OPTIONS SQL INTERRUPT ON is executed. When calling the close() method, OPTIONS SQL INTERRUPT OFF is executed.
on
- TRUE = with SQL interruption, FALSE = without.| Overview | Package | Class | Index | No Frames | Frames | Prev | Next |


Google Discover recommending more interests for you to follow
by Abner LiOver the past day, some Google Discover users have been served a “Discover more” recommendations card that prompts them to customize their feeds with more interests. There’s also a home view for topics and tweaked article cards.
Appearing in the Google app and to the left of Android’s homescreen, the “Discover more” card suggests six topics that might be relevant to you. They are displayed in a 3×2 grid with generic square images for each one.
Tapping a Google Discover recommendation opens a page in the Search tab for that interest. The topic name and eight-pointed star are in the top-left corner, while a “Follow” bottom is on the other side. A carousel of “Related” interests is underneath.
The rest of this page is a feed of articles for that subject. Story cards look the same and provide a preview, but there’s notably a bookmark icon that lets you save a link to the Google app’s built-in Collections feature. Meanwhile, there’s a share button in the bottom-right corner. It replaces the “More” or “Less” interests picker, which would not make sense in this context.
Both actions are quite convenient and would be useful in the main Discover tab, while the full interests pages are an interesting way to browse for stories. Google Discover recommendations are not widely rolled out for all users this evening.
More about Google Discover:
- Discover adds restaurant recommendation cards
- Google Discover loses topic bubbles for more compact feed
- Ads are officially coming to Google Discover later this year
- Google Discover surfacing ‘Posts on Google’ from brands and artists
Thanks Henny!
FTC: We use income earning auto affiliate links. More.


Books
Name: Javascript高级程序设计
Price: 84.2元
Name: Javascript语言精粹
Price: 24.2元
Not Found: not-found:view
Not Found: child:not-found
Not Found: not-found
Panel
0 book a
1 book b
2 book c


MOBILE PHONES
4.0 stars
CKK mobile is very affordable.
This brand is cheap and nice
They must produce more units of this brand.


- NAME
- Tcl_DumpActiveMemory, Tcl_InitMemory, Tcl_ValidateAllMemory - Validated memory allocation interface
- SYNOPSIS
- #include <tcl.h>
- int
- Tcl_DumpActiveMemory(fileName)
- void
- Tcl_InitMemory(interp)
- void
- Tcl_ValidateAllMemory(fileName, line)
-
- ARGUMENTS
- DESCRIPTION
- SEE ALSO
- KEYWORDS
Tcl_DumpActiveMemory, Tcl_InitMemory, Tcl_ValidateAllMemory - Validated memory allocation interface
#include <tcl.h>
int
Tcl_DumpActiveMemory(fileName)
void
Tcl_InitMemory(interp)
void
Tcl_ValidateAllMemory(fileName, line)
- Tcl_Interp *interp (in)
-
Tcl interpreter in which to add commands.
- const char *fileName (in)
-
For Tcl_DumpActiveMemory, name of the file to which memory
information will be written. For Tcl_ValidateAllMemory, name of
the file from which the call is being made (normally __FILE__).
- int line (in)
-
Line number at which the call to Tcl_ValidateAllMemory is made
(normally __LINE__).
These functions provide access to Tcl memory debugging information.
They are only functional when Tcl has been compiled with
TCL_MEM_DEBUG defined at compile-time. When TCL_MEM_DEBUG
is not defined, these functions are all no-ops.
Tcl_DumpActiveMemory will output a list of all currently
allocated memory to the specified file. The information output for
each allocated block of memory is: starting and ending addresses
(excluding guard zone), size, source file where ckalloc was
called to allocate the block and line number in that file. It is
especially useful to call Tcl_DumpActiveMemory after the Tcl
interpreter has been deleted.
Tcl_InitMemory adds the Tcl memory command to the
interpreter given by interp. Tcl_InitMemory is called
by Tcl_Main.
Tcl_ValidateAllMemory forces a validation of the guard zones of
all currently allocated blocks of memory. Normally validation of a
block occurs when its freed, unless full validation is enabled, in
which case validation of all blocks occurs when ckalloc and
ckfree are called. This function forces the validation to occur
at any point.
TCL_MEM_DEBUG, memory
memory, debug
Copyright © 1995-1997 Roger E. Critchlow Jr.
Copyright © 1992-1999 Karl Lehenbauer and Mark Diekhans.
Copyright © 2000 by Scriptics Corporation.


Funk duo Tuxedo is a collaboration between Los Angeles-based neo-soul singer/songwriter Mayer Hawthorne and Seattle-based hip-hop producer Jake One. Influenced by classic disco-funk of the acts of the '70s and early '80s like Chic, Shalamar, and Zapp, the two friends began trading mixtapes as far back as 2006, though the Tuxedo project wouldn't officially surface for another six years. A three-song EP based around the single "Do It" appeared seemingly out of the blue in 2013, prompting imediate interest in the duo.
Jacob Dutton, better known as Jake One, is an American hip hop record producer from Seattle, Washington. Dutton grew up in the Central District and moved to the North End of Seattle when he was 15. He started making music on a Casio keyboard in 1992. He attended the University of Washington and gave a tape of his music to a friend who worked in a local record store. One of the store's other employees, the DJ Mr. Supreme heard the tape, and when he set up his Conception Records label, he used Dutton to create backing tracks. The first record he produced was Eclipse's "World Premier". His early influences included Pete Rock, Dr. Dre, DJ Premier, and Marley Marl. Together with Mayer Hawthorne, Jake One forms funk duo Tuxedo. Their self-titled debut album was released on March 3, 2015 through Stones Throw Records.
Andrew Mayer Cohen (born February 2, 1979), better known by the stage name Mayer Hawthorne, is a Grammy-nominated American singer, producer, songwriter, arranger, audio engineer, DJ, and multi-instrumentalist based in Los Angeles, California. Cohen was born and raised in Ann Arbor, Michigan. The stage name "Mayer Hawthorne" is a combination of Cohen's real middle name (Mayer) and Hawthorne Road, the street he grew up on. Cohen also performs and records in the groups Tuxedo and Jaded Incorporated.


Genomics Process status
Start date:
End date:
Set date
Customer demand - projects/week
Ongoing projects today
Total delivery times -
All projects
Run chart
Variability
Rec control delivery times - All projects
Run chart
Variability
Lib prep delivery times - Lib prep projects
Run chart
Variability
Sequencing delivery times -
All projects
Run chart
Variability
Rec control
samples progressed failed in rec ctrl
Lib prep - #failed samples/workset
Run chart
Variability
Seq - data delivered / data ordered
Run chart
Variability


| Select
and
Run Measures
|
|
| This is the top window
for measure selection and run. Starting from here the user can enter the
different measure groups, select the measures and determine the measure
specific parameters. When the selection is completed the user can press
the "Run" button to start executing the selected measures on all the time
series in the current time series list. Any subset
of the listed measures in the different groups (or even all the measures)
can be selected but the user should be aware of the computational cost for each measure,
taking also into account the number and length of the time series in the
current time series list. Note that when a measure function is selected (by activating the check-box in the beginning of each measure line), the output for this selection may be a number of measures, one for each combination of parameter values (if parameters are to be specified). These are listed as distinct measures in the measure list and they are identified by the label of the selected measure function (this is the 10 character string in parenthesis after the descriptive name of each measure) and characters followed by numbers for each specified parameter (for the list of parameter notations, press the "Measure and parameter name notation" button in the main menu). |
|
| Linear Measures |
|
| The group of linear measures includes measures based on the linear correlation (autocorrelation), frequency (power spectrum) and linear models (only autoregressive models are included so far). To select measures in the specific groups press the associated button. Note that the Correlation group includes measures of linear and monotonic autocorrelation, i.e. in addition to measures based on the Pearson autocorrelation function measures based on the Kendall and Spearman autocorrelation function are included as well. | |
|
Nonlinear Measures |
|
| The group of nonlinear measures includes measures based on the nonlinear correlation (mutual information), dimension and complexity (embedding dimension, correlation dimension, entropy) and nonlinear models (local average and local linear models). To select measures in the specific groups press the associated button. | |
| Other Measures |
|
| The group of "other" measures includes simple measures of descriptive statistics (marginal moments) together with the Hjorth parameters and measures of long range correlation (DFA and Hurst exponent), as well as simple descriptive statistics of oscillation features extracted from the time series. To select measures in the specific groups press the associated button. | |
| Load Measure Parameters |
|
| This option can be used in case the user wants to use a pre-specified set of selected measures and parameter values stored in a file with a special format. The file should have been created from this program (using the "Save Measure Parameters" option, see below). This facility can be helpful if the user wants to execute the same set of measures and parameters on different instances, or different set of time series. | |
| Save Measure Parameters |
|
| This option allows the user to save the selected set of measures and parameters in a file of specific format. The user may load this file ("Load Measure Parameters" option, see above) if he/she wants to execute the same set of measures and parameters at a later stage (e.g. on a different set of time series). | |
| Reset Default Parameters |
|
| This option allows the user to restore the default parameters for all measures. | |
| Run |
|
| This button should be pressed when the user has selected all the measures (and parameters) and the measures will be executed on all the time series in the current time series list. Note that for each use of the Run button the measure list is cleared in order to be filled with the measure values from the new execution. Information about the progress of the batch execution of the selected measures is given in the "Running messages" text box. Note that the execution can be slow for some computationally involved measures, such as the correlation dimension estimation and the iterative local linear fit. | |
| Running messages |
|
| Here the progress in the
batch execution of the measures on the time series in the current time
series list is displayed. For each measure, the measure name appears
in a new line followed with 1 (for the first time series being
executed), and dots and number (1+multiple of 20) that indicate the number of the time
series being processed. For example, a snapshot for the execution of
the "False Nearest Neighbors" measure (for a set of parameter values)
processing
the 24th time series in the current time series list would look like the
following:
False Nearest Neighbors : 1...................21... |
|
| Cancel |
|
| Quit without doing anything and return to the main menu. | |
| Help |
|
| This file will be shown |


Do You have Time to Chat?
Let's build a chat app. But we're going to do it in a mind boggling way. Conversations take time to have, therefore rather than storing every message individually, we are going to store them in time. What does that even mean?
The first requirement is understanding immutable data. Most database systems overwrite old data with new data when there is an update. This preserves data in space, but loses its history. Immutable data is the idea of never changing data, but appending a new record every time. Such approach preserves history.


--- title: Oktopus - An Expressive Control Plane Framework layout: default bodyClass: page-home permalink: / nav_exclude: true search_exclude: true ---
{{site.title}} simplifies the process of designing a multicast application. It focus on what the network operator needs, and not on how to calculate the results.
Every multicast session has a source transmitting traffic, and destinations receiving this traffic. A multicast graph spans the routers of the source and destinations inside the provider network. With the existence of multiple (conflicting) multicast requirements and objectives, it is becoming complex and error-prone task for the network operator to calculate multicast graphs (the control plane) and configure the network devices (the data plane).
{{site.title}} isolates what goals the network provider needs to achieve, from how these goals are actually realized. The network operator writes their objectives in a high-level programming language, and {{site.title}} automatically translates these objectives to data plane configurations such as populating router rules or attaching labels to packets. {{site.title}} has two main components:
The {{site.title}} APIs provide a set of high-level interfaces to developers and network operators to define their applications.
app = App(topo_path) # Session APIs: session requirements s = Session(addr, src, dsts, bw) s.traverse(['fw', 'ids']) # service chaining # Routing APIs: routing obj. and link constraints r = Routing() for link in app.getLinks(): r.addLinkCapConstraint(link, 'bps', 1e9) r.addObjective('minRoutingCost') # App APIs: available resources and services app.addSessions(s); app.setRoutes(r) app.setAlgorithm('oktopus') # or other algorithms app.solve() # produces a solution
The optimization engine receives these inputs from the APIs, and runs the {{site.title}} algorithm to compute the multicast graphs.
The {{site.title}} algorithm runs at the control plane of the ISP network to calculate the multicast distribution graph for a given session. {{site.title}} algorithm aims at minimizing the routing cost for each multicast session. {{site.title}} consists of two steps. The first one generates a set of network segments for the ISP network, and the second step uses these segments to efficiently calculate the multicast distribution graph. {{site.title}} algorithm has a fine-grained control over the selection of links in the distribution graphs, which leads to significant improvements in the quality of the calculated graphs. Specifically, {{site.title}} algorithm increases the number of allocated sessions because it can reach ISP locations that have the required services, and thus includes them in the calculated graph. Moreover, {{site.title}} algorithm can reduce the routing cost per session as it carefully chooses links belonging to the graph.
The figure shows {{site.title}} allocates 30% more sessions compare to the state of the art algorithm (MSA) on Dfn network topology.


Thankyou to our generous sponsors for this year’s conference. If you would like to join them by becoming a sponsor, see the details below.
Silver
Microsoft
Microsoft’s mission is to empower every person and every organization on the planet to achieve more. With roughly 1.2 billion people with disabilities in the world, we’re passionate about ensuring that our products and services are designed for people of all abilities. We are committed to transparency, accountability and inclusion in our products and our culture, and are deeply inspired by the opportunity to work with others around the world to explore what’s possible. There are no limits to what people can achieve when technology reflects the diversity of everyone who uses it.
Follow them on @MSFTenable
Bronze
More information coming soon!
Target
More information coming soon!
Endorsement
More information coming soon!
Would you like to be a sponsor?
As always, OZeWAI is interested in sponsor agreements with relevant organisations.
The rules of engagement with a sponsor will be determined by a memorandum of understanding between the OZeWAI Committee and the sponsor. It will ordinarily involve financial contribution by the sponsor in return for benefits that may include arrangements such as:
- Exclusivity of partnership for the given conference
- Financial contribution to the conference by the conference partner
- Collaboration in running and organising the conference
- Collaboration in managing websites and electronic communication forums for the conference
- Opportunities for the conference partner to market and promote their services and communicate other materials through the avenues of communication related to the conference
- A position on the conference organising subcommittee for the conference partner
- Scope for the conference partner to present or run sessions at the conference
- Free attendance at the conference for the conference partner
- Other in-kind contributions and collaborations as agreed between the committee of the association and the conference partner.
Conference partners and sponsors shall not have access to the lists of members of the association or any other lists of people involved with any of the activities of the association without:
- Express permission from those people, or
- Agreement from the committee of the association.
The conduct of conference partners and sponsors and the terms of any memorandum of understanding must not be contradictory to the rules of OZeWAI, and in particular must be coherent with the objects of the OZeWAI association as set out in the OZeWAI Constitution.
Please contact us for more information about sponsoring OZeWAI, sponsorship packages or to discuss options for your organisation.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/Lean.20re-builds.html ---
@Sebastian Ullrich What criterion does leanpkg
use to decide whether a certain file has to be rebuilt or not? I'm caching .olean
files on travis and the whole thing gets rebuilt anyway. If I also cache .lean
files, then the rebuild is more conservative.
It's modification time.
It's curious that caching doesn't play well with that.
Is the .lean
modification time recorded inside the .olean
file?
No, but we also compare the olean modification times with the imports. So the olean files need to be newer than the lean files and also in the same temporal order as the import order.
Yes, I noticed that. Caching ~/.elan
became necessary for any .olean
files to be reused at all
@Simon Hudon Do you know what is up with the latest build failure? https://travis-ci.org/leanprover/mathlib/jobs/404668129 It seems like travis_long
is messing with some kind of change detection
what might be happening is a sort of race condition: some builds share the same cache (for example, the builds of the same branch) so it's possible that one build finishes its stage one, uploads its new version of the cache, then the other build does the same and then the first build tries to start its stage two. I have guarded stage two so that it fails when the binaries in the cache were built from a different commit. The only thing to do is to restart the build.
One may try to remove that guard but what would happen then is that Travis would try to redo all the work of stage 1 only to fail at the end.
I chose to make it fail as quickly as possible
That will probably happen at time of high affluence. It's annoying but it should still be better than before. Would it make it better if it sent you an email when it happens?
I always get an email when it fails
but I've reset the build a few times and it's still not working
This email would tell you its a race condition. Nothing you can't check yourself, that's true
The whole build or only stage two?
I'm starting to consider it might be worth letting the build restart in stage two when there's a race condition. With the cache, the build time sometimes gets much shorter than 45 minutes; it might just succeed
Does stage 1 ever use the cache?
If we give the old oleans to lean and let it sort them out we may gain a big improvement on many commits
It does. but that doesn't cause significant trouble. The cache contains code and binaries. Stage 1 just discards the code from the cache and ensure the right code from git
is used.
That's actually what has been happening
Ok, I'll remove the guard. That will be easier to handle.
When stage 2 fails, be sure to restart the whole thing
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


About Us
Xirka Silicon Technology creates innovative integrated circuit (IC) to provide mass product for a dynamic lifestyle.
Based on its expertise in integrated circuit design, Xirka creates innovation in the identification and mobile industries to provide secure, reliable, and competitive products to our customers.
From 2005 to 2008, the company did a chip design house outsourcing business, serving multinational electronics company in Fukuoka, Japan. XST was established in May, 2008 as a fabless company focusing in WiMax Baseband chipset.
XST has highly motivated staffs that are talented and highly expertise people graduated from various famous university in the world and Indonesia.
Xirka is principal Member of WiMax Forum. In 2012, Xirka started developing integrated circuit for smart card technology including NFC memory card chip, contact and contactless CPU card chip.
Product Roadmap
Our world is facing big change: new digital era on information and communication. The new technologies are making revolutionary impact on our daily life and behavior. As a global company, Xirka takes its responsibilities for global changes very seriously.
Our smart card solutions for identification, security, payment, mobile solution, as well as information and communications technology offer an answer to the challenges confronting modern society and dymanic lifestyle.


I am a marketing pro with more than 20 years of experience successfully leading teams and championing projects that have made a positive contribution to the bottom line. I also have a dirty secret - I like to code. I have been responsible for many websites - look & feel, user experience, landing page conersions, and of course, content. While using WSYWIG editors to update sites is fine... I've always been curous about what's under the hood and have tinkered around with HTML, CSS, and even a little SQL and Javascript.
Yes, I have a lot of impressive titles on my resume. No, I am not overqualified for the position available at your company. If I submitted my application, I am very interested in the opportunity and would like to discuss it further with you.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
This is where I will provide information so people can contact me.


DESMA161: Network Media
HOW TO FTP
WHAT IS FTP AND SFTP?
FTP stands for File Transfer Protocol. It is a standard network protocol used to transfer files between computers, generally between a client and server. An FTP client is a desktop application that lets you transfer files from your comuter to a remote server. It is most commonly used to upload files to a public web server for a website.
FTP pre-dates HTTP and was not developed to be a secure protocol and has many vulnerabilities. For this reason, we will be using SFTP. SFTP (SSH File Transfer Protocol, or Secure File Transfer Protocol) is a newer protocol designed by the Internet Engineering Task Force to provide secure file transferring between known clients and hosts.
CONNECTING WITH CYBERDUCK
- Click the Open Connection icon near the top left.
- In the dialogue box, choose SFTP (SSH File Transfer Protocol). DO NOT CHOOSE FTP.
- For server name, enter
ftp.dma.ucla.edu
and default port22
. - Enter your username and DMA support password.
- The first time you do this, you can select to add to keychain (if you're on your personal computer).
TRANSFERRING FILES
- Your files are located inside
public_html
- You can drag and drop files inside here to upload to the server or click on the Action menu and choose Upload. You can also choose to rename files, duplicate, delete, etc.
- Your files are located at
http://users.dma.ucla.edu/~
.yourusername
OTHER FTP APPLICATIONS
- FileZilla - Mac, Windows, Linux
- SFTP is also pre-installed on OS X's Terminal, accesible via
sftp<EMAIL_ADDRESS>BASIC INFO REQUIRED
To connect via a FTP connection you need to know:
- Server name
ftp.dma.ucla.edu
and the default port:22
- Username (your UCLA ID)
- Password (your DMA_Support password)
YOUR PERSONAL WEBSPACE
The public_html folder in your home directory is the root directory of your web space, and where you may create your personal website. It has been pre-configured with the correct permissions to allow file placed inside to be accessed online. A file called foo.html in that directory will be available online as: http://users.dma.ucla.edu/~
The special file index.html or index.php is what is brought up automatically if you do not specify a filename at the end of your URL (eg: http://users.design.ucla.edu/~
PLEASE NOTE: if you do not have an index.html file and type the URL without a filename at the end, you will get an error message (access forbidden). This is for your own protection, as it prevents people from browsing through your directory when you are not ready for them to do so.
NOTE1: Permissions File permissions matter. All files in the public_html directory should be world-readable in order to ensure their availability online. Similarly, all directories should be world readable and executable. Most clients will deposit the files in the correct manner, but there have been some reports that moving whole folders from other parts of your home directory to your web area may mess up permissions depending on your client.
NOTE2: CAPITALIZATION MATTERS! That is to say, index.html and iNdex.html are NOT the same files. In order for your site to work properly, you must make sure that both the filenames and the HTML that refers to the filename use the same casing. Since many operating systems by default hide or pretty the actual cases of their filenames, I recommend either turning off those features (if you know how) or use an SFTP client that shows you how the files actually look when uploaded.
- Info in this section comes from DMA Support