Pick a date
A case worth exploring
http://esa-digital.herokuapp.com/health03/health-conditions
Research has shown that people have variable mental models of when certain conditions first began, e.g. Three years ago, 2011, etc.
We should allow people to continue to describe these dates in the manner that is most natural to their mental model.
However — we know that legacy systems require the dates in a specific DD MM YY format. Whilst there may be temptation to include a date picker as a solution to a system problem, we should instead look to do the hard work to keep it simple for the user.
We could attempt to identify key words or phrases that are entered and automatically convert those to a suitable date format in the backend
Example, three years ago would become 01 11 2013.
Part of this will be challenging the specificity of the dates required, so that we can automatically default day to the first of the month when required.
Date pickers (calendar controls)
We have not seen/validated a user need for this.
Outstanding questions
- Have we seen/validated a user need (not a want) for this?
- Are there instances where the user will not always know a specific date?
- Will the user have a relative mental model on when the date is, eg next friday, or the first day of next month?
- Can the interaction can be made simplier/quicker with a picker?
- Does manual input create errors?
A word from GDS
Calendar controls are only appropriate for near past or future dates, where the day of the week is relevant. Their main use case is for appointment booking.
If you also need to show information like availability, embed the calendar in the page and make it large enough for the information to be readable.
A calendar control that depends on JavaScript should never be the only input option.
https://www.gov.uk/service-manual/user-centred-design/resources/patterns/dates.html


This site is currently under construction at this time while we move in. Please make a bookmark and return soon.
Remind yourself to come back to this location...
Free Reminder Service


Obfuscation is quite a debated topic, when it comes to software development.
There's obviously a tons of reason why you should not try to obfuscate your code.
But sometimes, for some very specific part of your software, you may consider trying it.
Now there's a lot of different ways to achieve this, and in my humble opinion there's no silver bullet when it come to obfuscation.
At the end, what you are trying to do is to prevent someone else to reverse-engineer your code, to prevent someone making sense of your logic and algorithms.
In such a situation, making your code «hard to read» may not be the best solution.
No matter how complex your code is, an experienced reverse-engineer will most of the time figure out what you are doing.
In such a context, psychological warfare is often more effective than pure obfuscation.
The goal here is to break down the attacker, and make it quit.
That being said, you'll often want to combine the psychological effect with some kind of obfuscation.
Again, lots of different ways to achieve this, depending on the language you're using, and your target platform.
But today I want to look at some techniques you can try from a machine code perspective, on x86-64 platforms.
LLDB
or GDB
also provide disassembly.
Now what can you expect from such a tool?
Well, let's take a look at the following C program:
#includevoid foo( void ); void foo( void ) { printf( "hello, world\n" ); } int main( void ) { foo(); return 0; }
A disassembler might give the following output:
_foo: push rbp mov rbp, rsp sub rsp, 0x10 lea rdi, qword [ aHelloWorldn ] mov al, 0x0 call imp___stubs__printf mov dword [ rbp + var_4 ], eax add rsp, 0x10 pop rbp ret _main: push rbp mov rbp, rsp sub rsp, 0x10 mov dword [ rbp + var_4 ], 0x0 call _foo xor eax, eax add rsp, 0x10 pop rbp ret
Now even if you're not used to x86-64 assembly code, you might figure out what the program is doing pretty quickly.
main
calls foo
, which calls printf
, with some argument.
Among the different obfuscation techniques, hiding code or trying to fool the disassembler is quite common.
The goal here is to make the disassembler program go crazy, and make it output garbage instead of the actual instructions.
You should of course not rely solely on this.
An experienced reverse-engineer will obviously run your software in a debugger, so machine-code obfuscation won't resist this.
But still, it's great if you can prevent some kind of static analysis.
Now how can we achieve this on x86-64 platforms?
Well, the x86 instruction set is quite a complex beast.
Unlike most of the RISC
architectures, x86 instructions can have an arbitrary length.
The CPU will (very) basically read the first byte(s) of an instruction, and depending on its value will read additional bytes for the instruction operands.
As an example, in x86-64 assembly:
xor eax, eax mov eax, [ edi ]
These two instructions will have a different lengths.
First one will be 2 bytes:
31 C0
While the second one will be 3 bytes:
67 8B 07
This means that, depending of the instruction, the CPU will expect trailing bytes for the operands.
And so will the disassembler.
This is a neat opportunity for us, as it implies we can in theory output raw bytes that correspond to valid x86 instructions and omit the operand bytes.
This way, the disassembler will expect the operands and will try to read them. It will then just miss the next instructions, and go crazy because it will then read at a wrong offset.
The hard part here is that we obviously want our code to be executable.
Trying to execute incomplete instructions will most certainly result in a crash.
So we want these incomplete instructions in a dead branch of our code; that is a branch that will never be executed, but that will still be read by the disassembler.
Something like:
if( false ) { /* Incomplete instructions here... */ }
Of course, we don't want this to be so obvious, so we'll need to use some other technique here.
When calling a function, using the call
instruction, a few things happen before the target code is reached.
Mainly, the return address is pushed onto the stack. Later, from the called function, when the ret
instruction is executed, the CPU will pop that return address, and jump back to the caller.
This pattern is recognised by all disassemblers. That's how they are able to generate complete call graphs.
Again, this is a nice opportunity for us.
First of all we might be able to break some disassemblers, as many will expect a function to have a single ret
statement.
Their ability to generate a call graph will then be greatly compromised.
Then it will help us insert dead code in our program, that will still be seen by the disassembler as actual and valid code.
In order to do this, we can basically place another return address on the stack, corresponding to a valid portion of our code.
When ret
is executed, the CPU will jump to that portion instead of the original caller, giving us control again.
Just like a local jmp
, but hidden for the disassembler.
Let's see how we can implement this in assembly.
But first of all, let's take a look at stack frames.
The stack is a memory region that is basically used as scratch memory for functions.
This is where local and temporary variables are stored.
Now to avoid overriding values from other functions, each called function will create its own stack frame.
The CPU has two registers for the stack: rbp
and rsp
.
The first one is the base pointer, and contains the start address of the local stack frame.
The second is a pointer to the top of the stack. When using push
or pop
instructions, this one will change accordingly.
This is why functions usually start with the following prologue:
push rbp mov rbp, rsp
The first instruction saves the original base pointer, and the second one sets it to the top of the stack.
This way, we can have our own stack space, for the current function.
So let's start by saving the registers we are going to use, so we can restore them later and hopefully don't break anything:
push rax push rcx push rdx
Then we'll save the current stack pointer (rsp
) into the rcx
register. Again so we'll be able to restore it later.
mov rcx, rsp
Now we'll reset the stack pointer (rsp
) to the base pointer (rbp
).
Doing this effectively resets the current stack frame to where it was just before the call.
mov rsp, rbp
This is where it gets interesting, because as we moved the stack pointer, the next two values stored in the stack that we can pop are the original base pointer and the return address.
We'll pop the base pointer in rbp
, and the return address in rax
. We'll restore them later:
pop rbp pop rax
Now we can push another return address, of a location we know:
lea rdx, [ rip + 97 ] push rdx push rdx
Here, the first line loads a specific address into the rdx
register.
rip
is the current instruction pointer; that is where we are right now. +97
is simply an offset from here, and is the target code we'll want to execute.
We'll then have some room for garbage code, and some other neat tricks.
We'll obviously push this new return address, as we popped the old one earlier.
Note that we do it twice, so the stack keeps its original alignment (it used to have the base pointer as well).
And finally:
ret
This is where the magic occurs. For most disassemblers, our function is over here, as we've hit a ret
instruction.
Control flow should return to the caller, but instead, it will simply jump a few bytes further, as we've overridden the return address.
What can we do from here?
Well, we have some room until we reach to code portion that will be executed.
Let's try to fool the disassembler a little more.
Now what logically comes after the ret
instruction of a function?
The start of another function.
Let's do one.
Remember this is completely dead code, that will never be executed.
We are just doing some stuff that will seem logical for a disassembler.
Let's start by a standard stack frame:
push rbp mov rbp, rsp
What can we do next?
Well, disassemblers are smart.
You can try to fool them in many ways, but sometimes they'll eventually recover.
They do this by analysing your program's flow. That is, your jmp
and call
instructions.
Even if the code seems completely garbage (like if you used the incomplete instruction trick), they might be able to recover if they see a jump to a valid code location.
Instead of reading garbage, they'll just start disassembling again from that location.

This will usually mess a bit more with the control graph, and the disassembler's ability to recover.
As we have room for some garbage code, let's do this:
xor rax, rax cmp rax, rax
This just zeroes the rax
register, and compares it with itself.
Useless, but remember this is dead code.
Now following a cmp
instruction, we expect some kind of branching:
je j0
Meaning if the comparison was true (it surely is), jumps to the local j0
label, that we'll define later.
And let's continue a bit more, with other random comparisons, and other jumps:
cmp rax, rdi je j1 add rax, 0xCAFE cmp rax, rsi je j2 cmp rax, rdx je j3 cmp rax, rcx je j4 jmp 24[ rip ]
We are here just comparing useless stuff with useless stuff, and jumping to some local labels.
Again, just to mess with the control graph.
The last instruction jumps to a random location, based on the current instruction pointer.
So this is just:
if( ... ) { goto ...; } else if( ... ) { goto ...; } else { goto ...; }
Now we'll simply define these local labels, and in each one jump to another random location:
j0: jmp 16[ rip ] j1: jmp 48[ rip ] j2: jmp 64[ rip ] j3: jmp 128[ rip ] j4: jmp 256[ rip ]
Now, at this point, the disassembler should be pretty confused.
This is time for us to go back to real code.
Remember our return address override?
It was [ rip + 97 ]
.
That +97
offset brings us just here, accounting for all the previous instructions we wrote.
So let's undo all the mess we've done:
pop rdx push rax
We saved the original return address in rax
. So we'll restore it in the stack, and just before, as we pushed it twice to keep the stack alignment, we'll just pop it into rdx
, which is a safe register for us to use at this point.
The original base pointer was saved in rbp
previously, let's push it again:
push rbp
And now we can simply restore our previous stack frame (rsp
was saved to rcx
):
mov rbp, rsp mov rsp, rcx
And that gives us the opportunity to restore the three registers we earlier pushed on the stack, because we were going to use them:
pop rdx pop rcx pop rax
At this very specific point, it's just as if nothing happened.
The stack frame and the registers are in the exact same conditions.
This is great, because it means our software will run unaffected.
But it's also great because we produced a lot of garbage for the disassembler.
Now there's one more thing we can do, before continuing normal code execution.
We spoke about incomplete instructions, but we never actually used them.
Now is the right moment.
The idea of offsetting a disassembler is great, but I found in practice that many disassemblers are quite robust to incomplete instructions.
But now that we messed so much with its ability to generate a control graph, and detect that we're actually inside a single function, it might be quite efficient.
Now we're still in a valid code section, although it might not be recognised as such by the disassembler.

Nothing scary here, I don't expect the disassembler to see the done
label because of the mess we just did.
Now let's output an actual incomplete instruction:
.byte 0x89 .byte 0x84 .byte 0xD9
For an x86-64 processor, that is:
0x89
is the opcode for the mov (r/m16/32/64 r16/32/64)
instruction.
0x84
(1000 0100
) is MOD-REG-R/M
for a four byte displacement following SIB
with RAX
(000
) as destination register.
0xD9
(1101 1001
) is SIB
for 8
as scale, RBX
as index (011
) and RCX
as base (001
).
As you can see, the four displacement bytes are omitted, so the instruction is incomplete.
Assuming the disassembler is able to reach this location, this will fool it as it will try to interpret the next instructions as the displacement bytes.
Note that the complete instruction, if complete, would translate to:
mov rax, [ rcx + rbx * 8 + displacement ]
Now we simply have to declare our done
label, pop rax
, and we can continue normal execution:
done: pop rax
We're basically done, and I hope you found this article interesting.
Now remember this is a basic approach to some kind of obfuscation, for a specific platform.
In practice, I found that mixing different techniques in some specific way usually gives the best results.
That being said, disassemblers are very smart, and getting smarter each day.
Each one uses different heuristics, so as I said at the beginning of the article, there's really no silver bullet.
But if you're looking into obfuscation, my only hope is that this article gave you some ideas… : )
As alsways, you can find the code for the article on my GitHub.
Cheers!


{% extends 'annotationweb/one_column_layout.html' %} {% block content %}
Are you sure you want to delete the dataset {{ dataset.name }} which has {{ dataset.subject_set.count }} subjects associated with it?


Look at me hanging!
Input image:
Maximum width:
Maximum height:
Maximum megapixels:
Strip EXIF and transform
(⇧Click/⌥Click to save image)
Naive:
Tamed:


[gecode-users] Using IntActivity with space
Christian Schulte
cschulte at kth.se
Tue Jul 16 11:09:28 CEST 2013
Yes, changes to recomputation can change the variable ordering but that's
the best we can do.I think quite some variable selection strategies will
also work differently on different hardware/software platforms due to
different rounding...
How about one can give an initialization function for Activity such that the
activity value will be initialized for each variable. That should be easy.
Christian
--
Christian Schulte, Professor of Computer Science, KTH,
www.ict.kth.se/~cschulte/
-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Kish Shen
Sent: Monday, July 15, 2013 5:13 AM
Cc: users at gecode.org
Subject: Re: [gecode-users] Using IntActivity with space
On 11/07/2013 11:25, Christian Schulte wrote:
> Hi Kish,
>
> As said, don't wait up for Activity with dynamically adding variables...
>
> Yes, activity information must be initialized (either by restarts or
> even better by randomized probing) to be useful.
>
Could the initial value be the degree like in AFC?
> Yes, recomputation has an effect on activity. But that's okay,
> activity is just a measure and does not need to be 100% accurate.
I know it is just a heuristic measurement, but counting recomputation seem
to introduce some bias, but more importantly, doesn't this mean that the
values will change with different amount of recomputation, which can then
lead to different variable selection?
Cheers,
Kish
_______________________________________________
Gecode users mailing list
users at gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users
More information about the users
mailing list


{% extends "frontend/base.html" %} {% load i18n %} {% block content %}
{% blocktrans %}This page has been created to make it easier for disc golf clubs to host tournaments, and lets you host a complete homepage for the tournament, which includes registration, player lists, individual content pages with text and pictures, and more. The service is completely free.{% endblocktrans %}


This is the data companion package to the package tempcycles. This package includes the metadata, linear, and cycling parameters from "Recent geographic convergence in diurnal and annual temperature cycling flattens global thermal profiles", Wang & Dillon, Nature Climate Change, 4, 988-992 (2014). doi:10.1038/nclimate2378.
| Version: | 1.0.1 |
| Depends: | R (≥ 3.2.2) |
| Suggests: | dplyr |
| Published: | 2016-01-03 |
| Author: | George Wang [aut, cre] |
| Maintainer: | George Wang <biogeek at gmail.com> |
| License: | GPL-2 |
| NeedsCompilation: | no |
| CRAN checks: | tempcyclesdata results |
| Reference manual: | tempcyclesdata.pdf |
| Package source: | tempcyclesdata_1.0.1.tar.gz |
| Windows binaries: | r-devel: tempcyclesdata_1.0.1.zip, r-release: tempcyclesdata_1.0.1.zip, r-oldrel: tempcyclesdata_1.0.1.zip |
| OS X binaries: | r-release: tempcyclesdata_1.0.1.tgz, r-oldrel: tempcyclesdata_1.0.1.tgz |
| Old sources: | tempcyclesdata archive |
Please use the canonical form https://CRAN.R-project.org/package=tempcyclesdata to link to this page.


Note
This tutorial was generated from a Jupyter notebook that can be downloaded here.
Hot jupiter phase curve example¶
In this notebook, we’ll run through a brief example of how to model a full hot jupiter light curve – including the transit, secondary eclipse, and phase curve – using the machinery of the exoplanet
package.
Let’s begin with our custom imports. Note that we want to run starry
in lazy
mode (the default), since we need to be able to compute analytic derivatives of the model for use in pymc3
.
[3]:
import starry
import matplotlib.pyplot as plt
import numpy as np
import pymc3 as pm
import exoplanet
starry.config.quiet = True
np.random.seed(1)
Generating a dataset¶
Let’s generate some synthetic data. First we create a star…
[4]:
A = starry.Primary(starry.Map(ydeg=0, udeg=2, amp=1.0), m=1.0, r=1.0, prot=1.0)
A.map[1] = 0.4
A.map[2] = 0.2
… and now we instantiate the planet…
[5]:
# These are the parameters we're going to try to infer
log_amp_true = -3.0
offset_true = 30.0
b = starry.Secondary(
starry.Map(ydeg=1, udeg=0, amp=10 ** log_amp_true, inc=90.0, obl=0.0),
m=0.0,
r=0.1,
prot=1.0,
porb=1.0,
)
b.map[1, 0] = 0.5
b.theta0 = 180.0 + offset_true
Most of the parameters should be self-explanatory (check the docs for details). For the planet, we give it a simple dipole map by setting only the \(Y_{1,0}\) coefficient. We then set the theta0
parameter to be \(180^\circ\) plus an offset, which we set to be \(30^\circ\). The parameter theta0
is the rotational phase of the map at the reference time t0
, which in this case is the time of transit. For a tidally-locked close-in planet, we usually want the bright side of the
map to be facing the star at that point, which we accomplish by setting theta0=180
. The offset captures the misalignment between the hot spot of the planet and the sub-stellar point, as is seen in the hot jupiter HD 189733b. In this notebook, we’ll attempt to solve for this value.
Next, we instantiate the system:
[6]:
sys = starry.System(A, b)
We can now generate a synthetic light curve, and add some noise:
[7]:
t = np.linspace(-0.3, 1.3, 1000)
flux_true = sys.flux(t).eval()
ferr = 1e-4
flux = flux_true + ferr * np.random.randn(len(t))
plt.figure(figsize=(12, 5))
plt.plot(t, flux, "k.", alpha=0.3, ms=3)
plt.plot(t, flux_true)
plt.xlabel("Time [days]", fontsize=24)
plt.ylabel("Flux [normalized]", fontsize=24);
By eye we can tell there’s an offset, since the peak in the phase curve does not coincide with the secondary eclipse.
Fitting the data¶
We’re going to fit this light curve using exoplanet
and pymc3
. Let’s begin fresh and define a new star, planet, and system, this time within a pymc3 model context:
[8]:
with pm.Model() as model:
# These are the variables we're solving for;
# here we're placing wide Gaussian priors on them.
offset = pm.Normal("offset", 0.0, 50.0, testval=0.11)
log_amp = pm.Normal("log_amp", -4.0, 2.0, testval=-3.91)
# Instantiate the star; all its parameters are assumed
# to be known exactly
A = starry.Primary(
starry.Map(ydeg=0, udeg=2, amp=1.0, inc=90.0, obl=0.0), m=1.0, r=1.0, prot=1.0
)
A.map[1] = 0.4
A.map[2] = 0.2
# Instantiate the planet. Everything is fixed except for
# its luminosity and the hot spot offset.
b = starry.Secondary(
starry.Map(ydeg=1, udeg=0, amp=10 ** log_amp, inc=90.0, obl=0.0),
m=0.0,
r=0.1,
prot=1.0,
porb=1.0,
)
b.map[1, 0] = 0.5
b.theta0 = 180.0 + offset
# Instantiate the system as before
sys = starry.System(A, b)
# Our model for the flux
flux_model = pm.Deterministic("flux_model", sys.flux(t))
# This is how we tell `pymc3` about our observations;
# we are assuming they are ampally distributed about
# the true model. This line effectively defines our
# likelihood function.
pm.Normal("obs", flux_model, sd=ferr, observed=flux)
Great! The first thing we usually do is run this model through an optimizer (which is usually fast, since starry
computes derivatives):
[9]:
%%time
with model:
map_soln = exoplanet.optimize()
optimizing logp for variables: [log_amp, offset]
113it [00:02, 49.32it/s, logp=7.803390e+03]
CPU times: user 3 s, sys: 309 ms, total: 3.3 s
Wall time: 14 s
message: Desired error not necessarily achieved due to precision loss.
logp: -26221.397786421014 -> 7803.3903656983975
Here’s what our best model looks like:
[10]:
plt.figure(figsize=(12, 5))
plt.plot(t, flux, "k.", alpha=0.3, ms=3)
plt.plot(t, map_soln["flux_model"])
plt.xlabel("Time [days]", fontsize=24)
plt.ylabel("Flux [normalized]", fontsize=24);
And here are the best-fit values of the two parameters:
[11]:
print("offset:", map_soln["offset"])
print("log_amp:", map_soln["log_amp"])
offset: 30.052031485477368
log_amp: -2.9983334917126943
Not bad! If we just cared about finding the best solution, we’d be done, but we actually want posteriors over the model parameters. For this, we’re going to do sampling with pymc3
:
[12]:
%%time
with model:
trace = pm.sample(
tune=250,
draws=500,
start=map_soln,
chains=4,
cores=1,
step=exoplanet.get_dense_nuts_step(target_accept=0.9),
)
Sequential sampling (4 chains in 1 job)
NUTS: [log_amp, offset]
Sampling chain 0, 0 divergences: 100%|██████████| 750/750 [00:11<00:00, 63.03it/s]
Sampling chain 1, 0 divergences: 100%|██████████| 750/750 [00:05<00:00, 139.85it/s]
Sampling chain 2, 0 divergences: 100%|██████████| 750/750 [00:05<00:00, 141.30it/s]
Sampling chain 3, 0 divergences: 100%|██████████| 750/750 [00:05<00:00, 149.16it/s]
The acceptance probability does not match the target. It is 0.9655193043114186, but should be close to 0.9. Try to increase the number of tuning steps.
CPU times: user 35.7 s, sys: 219 ms, total: 35.9 s
Wall time: 37.3 s
And we’re done! It’s usually a good idea to look at a summary of the sampling procedure:
[13]:
pm.summary(trace, var_names=["log_amp", "offset"])
[13]:
| mean | sd | hpd_3% | hpd_97% | mcse_mean | mcse_sd | ess_mean | ess_sd | ess_bulk | ess_tail | r_hat | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| log_amp | -2.998 | 0.002 | -3.001 | -2.995 | 0.000 | 0.000 | 1074.0 | 1073.0 | 1104.0 | 1048.0 | 1.01 |
| offset | 30.065 | 0.457 | 29.232 | 30.888 | 0.011 | 0.008 | 1731.0 | 1729.0 | 1705.0 | 1259.0 | 1.00 |
The mc_errors
are relatively small, the Rhat
convergence criterion is close to 1, and the number of effective samples n_eff
is over 1000, all of which are good. We should probably run the sampler a bit longer, but this should be good enough for demonstration purposes. Let’s plot our posterior distributions:
[14]:
import corner
samples = pm.trace_to_dataframe(trace, varnames=["log_amp", "offset"])
corner.corner(
np.array(samples),
truths=[log_amp_true, offset_true],
labels=[r"$\log\,\mathrm{amplitude}$", r"$\mathrm{offset}$"],
);
Looks great! The blue lines indicate the true values.


| Thursday | Friday | Saturday | Sunday |
|
March 3-6 Psycho (1960) 7:30 (plus 3:30 Sat/Sun) Sunset Blvd (1950) 5:30, 9:30 |
|||
|
March 10-13 To Catch a Thief (1955) 7:30 (plus 3:35 Sat/Sun) Dial M for Murder (1954) 5:30, 9:25 |
March 17-20 The 39 Steps (1935) 7:30 (plus 3:45 Sat/Sun) Foreign Correspondent (1940) 5:20, 9:05 |
March 24-27 Rebecca (1940) 7:30 (plus 3:20 Sat/Sun) Suspicion (1941) 5:40, 9:50 |
March 31-April 3 Vertigo (1958) 7:30 (plus 3:05 Sat/Sun) Rear Window (1954) 5:25, 9:50 |
April 7-10 The Lady Vanishes (1938) 7:30 (plus 3:50 Sat/Sun) Strangers on a Train (1951) 5:35, 9:15 |
April 14-17 North by Northwest (1959) 7:30 (plus 3:00 Sat/Sun) Shadow of a Doubt (1943) 5:30, 10:00 |
April 21-24 The Birds (1963) 7:30 (plus 2:55 Sat/Sun) Marnie (1964) 5:05, 9:40 |
| Thursday | Friday | Saturday | Sunday |


Project quality rating
87
Current overall coverage
{{getActiveSonarQubeReport().overallCoverage.toFixed(1)}}
Current code duplication
{{getActiveSonarQubeReport().duplicatedLines}}
Current code bugs
{{getActiveSonarQubeReport().totalBugs}}
RECOMMENDED ACTIONS
Install Gradle plugin to integrate with BLA
Run audit on library licences
Overall project ratings
Project quality rating
87
Current overall coverage
{{getAverageOverallCoverage()}}
Current code duplication
{{getAverageCodeDuplication()}}
Current code bugs
{{getAverageCodeBugs()}}


{% extends 'base.html' %} {% block container %} {{ block.super }} Sign up {% include 'sections/_main.html' %} {% include 'sections/_client.html' %} {% include 'sections/_location.html' %} {% include 'sections/_report.html' %}
It's all designed for the user, accessible from any device Reserved is easy, safe and fast.


00000000:0000000000
0000
0000000000
Petrus
New Tickets per Week
O
|
C
|
E
Y
|
H
|
Q
|
M
Support
Photo by
Simon Berger
from
Pexels
Photo by
travis blessing
from
Pexels


public interface Sender
The ClientStart
aggregates this Object and exposes it via
ClientStart.send()
.
It can be used to:
CommunicationRegistration
of the Server handles itThe reset Method should not be used within production. Reset clears out all saved instances of requested registrations and therefore is after calling it not able to resolve register responses.
| Modifier and Type | Method and Description |
|---|---|
ReceiveOrSendSynchronization |
objectToServer(Object o)
Sends an Object over the network to the server.
|
ReceiveOrSendSynchronization |
objectToServer(Object o,
Class connectionKey)
Sends an Object over the network to the server.
|
ReceiveOrSendSynchronization |
objectToServer(Object o,
Connection connection)
Sends an Object over the network to the server.
|
<T> ReceiveOrSendSynchronization |
registrationToServer(Class<T> clazz,
CacheObserver<T> observer)
Sends a register request to the Server.
|
<T> ReceiveOrSendSynchronization |
registrationToServer(Class<T> clazz,
CacheObserver<T> observer,
Class connectionKey)
Sends a register request to the Server.
|
<T> ReceiveOrSendSynchronization |
registrationToServer(Class<T> clazz,
CacheObserver<T> observer,
Connection connection)
Sends a register request to the Server.
|
void |
reset()
Resets the Sender to its original state.
|
<T> ReceiveOrSendSynchronization |
unRegistrationToServer(Class<T> clazz)
Requests an unRegistration from the specified message type.
|
<T> ReceiveOrSendSynchronization |
unRegistrationToServer(Class<T> clazz,
Class connectionKey)
Requests an unRegistration from the specified message type.
|
<T> ReceiveOrSendSynchronization |
unRegistrationToServer(Class<T> clazz,
Connection connection)
Requests an unRegistration from the specified message type.
|
ReceiveOrSendSynchronization objectToServer(Object o)
The call will result in an asynchronous extraction. However, it returns a synchronization mechanism, that will allow the developer to listen for a successful send or incoming messages.
It uses the DefaultConnection
o
- the Object that should be send over the network.ReceiveOrSendSynchronization objectToServer(Object o, Connection connection)
The call will result in an asynchronous extraction. However, it returns a synchronization mechanism, that will allow the developer to listen for a successful send or incoming messages.
It uses the specified Connection.
o
- the Object that should be send over the network.connection
- the Connection that should be used.ReceiveOrSendSynchronization objectToServer(Object o, Class connectionKey)
The call will result in an asynchronous extraction. However, it returns a synchronization mechanism, that will allow the developer to listen for a successful send or incoming messages.
It uses the Connection, identified by the provided key.
o
- the Object that should be send over the network.connectionKey
- the identifier of the Connection that should be used<T> ReceiveOrSendSynchronization registrationToServer(Class<T> clazz, CacheObserver<T> observer)
The call will result in an asynchronous extraction. However, it returns a synchronization mechanism, that will allow the developer to listen for a successful send or incoming messages.
T
- the type of the message, you want to register toclazz
- the class of the message, you want to register toobserver
- the callback object, that should be called, if an Object of the specified type arrives<T> ReceiveOrSendSynchronization registrationToServer(Class<T> clazz, CacheObserver<T> observer, Connection connection)
The call will result in an asynchronous extraction. However, it returns a synchronization mechanism, that will allow the developer to listen for a successful send or incoming messages.
Uses the provided Connection.
T
- the type of the message, you want to register toclazz
- the class of the message, you want to register toobserver
- the callback object, that should be called, if an Object of the specified type arrivesconnection
- the Connection that should be used.<T> ReceiveOrSendSynchronization registrationToServer(Class<T> clazz, CacheObserver<T> observer, Class connectionKey)
The call will result in an asynchronous extraction. However, it returns an synchronization mechanism, that will allow te developer to listen for a successful send or incoming messages.
Uses the Connection, identified with the provided connectionKey
T
- the type of the message, you want to register toclazz
- the class of the message, you want to register toobserver
- the callback object, that should be called, if an Object of the specified type arrivesconnectionKey
- the key for the Connection that should be used.<T> ReceiveOrSendSynchronization unRegistrationToServer(Class<T> clazz)
The call will result in an asynchronous extraction. However, it returns an synchronization mechanism, that will allow te developer to listen for a successful send or incoming messages.
T
- the type of the message, you want to register toclazz
- the class of the message, you want to register to<T> ReceiveOrSendSynchronization unRegistrationToServer(Class<T> clazz, Connection connection)
The call will result in an asynchronous extraction. However, it returns an synchronization mechanism, that will allow the developer to listen for a successful send or incoming messages.
T
- the type of the message, you want to register toclazz
- the class of the message, you want to register toconnection
- the Connection that should be used<T> ReceiveOrSendSynchronization unRegistrationToServer(Class<T> clazz, Class connectionKey)
The call will result in an asynchronous extraction. However, it returns an synchronization mechanism, that will allow the developer to listen for a successful send or incoming messages.
T
- the type of the message, you want to register toclazz
- the class of the message, you want to register toconnectionKey
- the class, identifying the Connection that should be used.void reset()
Calling this Method is not recommended. It is utilized, to reset a Client, once it disconnects from the Server, to allow it to reconnect. It cleans out all internal saved instances
Calling this Method results in a clean of all requested registration and there corresponding callback Objects. So if you send an register Request and shortly after call this method, the callback Object will no longer be available.
This method is called if the last Connection is disconnected.
Copyright © 2018. All rights reserved.


I am an infrastructure engineer working on both on-premise and public cloud with a focus on Kubernetes and OpenStack.
Mainly, I implement platforms and design application architectures.
I also frequently give technical talks at both conferences and in the community as well as at other companies by invitation.
Japanese is here.
Resume(google docs) is here.
Designed several products’ architectures using Kubernetes and Docker, in particular utilizing special features of managed Kubernetes services.
Built CI/CD pipelines and other automations for high velocity development and stability.
Implemented GKE-like Kubernetes as a Service on OpenStack without any provisioning tools.
Implemented a “type: LoadBalancer” Service as well as a GKE-like ingress controller for the private cloud, increasing compatibility between on-premise and GKE, thus creating a user-friendly environment for development.
Currently implementing a new Ingress Controller for container-native load balancing with calico and L7 software load balancer.
Built a new private cloud platform based on Openstack Ocata, utilizing Nova (compute), Neutron (networking), Cinder (block storage), Swift (object storage), Glance (image), Heat (orchestration) and Designate (DNS) for many XaaS.
Contributed to the OpenStack community and projects.
Implemented OpenStack on Kubernetes, with OpenStack control plane is running on Kubernetes.
Building virtualization platforms, DNS, DHCP, MAIL, WEB, physical/virtual network, etc.
GPA: 3.93
I have been interested in technology since I was a child. This has influenced me to pursue a career in IT. I like building systems and platforms, and I am interested in networks and operating systems.
I enjoy researching and discussing new technologies as well as giving presentations at conferences and in the community.


The NullAlphaModel doesn't emit any insights. It's the default Alpha model.
NullAlphaModel
AddAlpha(new NullAlphaModel());
self.AddAlpha(NullAlphaModel())
To view the implementation of this model, see the LEAN GitHub repositoryLEAN GitHub repository.


A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z
- l10n
-
msgcat
- length
-
llength, ListObj
- level
-
info, uplevel, upvar
- library
-
library
- limit
-
Limit
- line
-
gets
- linemode
-
fconfigure
- link
-
LinkVar
- linked variable
-
UpVar
- list
-
foreach, join, lappend, lassign, lindex, linsert, list, llength, lrange, lrepeat, lreplace, lreverse, lsearch, lset, lsort, split, ListObj, SetResult, SplitList
- list object
-
ListObj
- list type
-
ListObj
- lists
-
concat
- load
-
safe
- loading
-
load
- localization
-
msgcat
- lookup
-
dict, Hash
- loop
-
break, continue, while
- looping
-
for, foreach
Copyright © 1989-1994 The Regents of the University of California
Copyright © 1992-1999 Karl Lehenbauer & Mark Diekhans
Copyright © 1992-1999 Karl Lehenbauer and Mark Diekhans
Copyright © 1993-1997 Bell Labs Innovations for Lucent Technologies
Copyright © 1994-2000 Sun Microsystems, Inc
Copyright © 1995-1997 Roger E. Critchlow Jr
Copyright © 1997-2000 Ajuba Solutions
Copyright © 1998 Mark Harrison
Copyright © 1998-2000 Scriptics Corporation
Copyright © 2001 ActiveState Tool Corp
Copyright © 2001 Vincent Darley
Copyright © 2001-2004 ActiveState Corporation
Copyright © 2001-2005 Kevin B. Kenny <kennykb(at)acm.org>
Copyright © 2001-2006 Donal K. Fellows
Copyright © 2002-2010 Andreas Kupries <andreas_kupries(at)users.sourceforge.net>
Copyright © 2003 George Petasis <petasis(at)iit.demokritos.gr>
Copyright © 2003 Simon Geard
Copyright © 2006 Miguel Sofer
Copyright © 2006-2008 ActiveState Software Inc


Cody Fajardo will start at quarterback for Saskatchewan Roughriders in West Division final
Cody Fajardo, who is nursing an oblique injury, is to start for the Roughriders on Sunday against Winnipeg.
by Regina Leader-PostCody Fajardo will start at quarterback for the Saskatchewan Roughriders in Sunday’s CFL West Division final against the visiting Winnipeg Blue Bombers.
That was the word Saturday from Roughriders head coach Craig Dickenson.
Fajardo, who was recently named the West Division’s most outstanding player, has been dealing with an oblique injury that he sustained in practice on Oct. 30.
“He’s shown that he’s healthy,” Dickenson said. “He’s going to have some soreness and some stiffness, but he has shown that he can execute and run the offence the way he needs to, so we feel like he’s going to be good.”
Dickenson added: “We feel like if he’s not 100 per cent, he’s close.”
Fajardo also noted some progress, saying: “It feels good … All things considered, it’s feeling probably the best that I’ve felt since the injury.”
Fajardo was forced to miss the Roughriders’ regular-season finale due to the injury. In that Nov. 2 game, Isaac Harker started at quarterback for Saskatchewan and helped his team defeat the visiting Edmonton Eskimos 23-13.
That victory allowed Saskatchewan (13-5) to clinch first place in the West for the first time in 10 years, and for only the second time in a span of 43 seasons.


| Module | Redirectr::ControllerMethods::InstanceMethods |
| In: |
lib/redirectr.rb
|
Used in back links, referrer based redirection after actions etc. Accepts a default redirect path in case no param[referrer_param] is set, default being root_path. Can and should be overwritten in namespace specific controllers to set a sensible default if no referrer is given. Example:
class MyController def create @my = My.create(...) redirect_to back_or_default(my_path) end end
The above example will redirect to the referrer_path if it is defined, otherwise it will redirect to the my_path
Example:
class MyController def create @my = My.create(...) redirect_to back_or_default end end
The above example will redirect to the referrer_path if it is defined, otherwise it will redirect to the root_path of the application.
Return the path of the current request. note that this path does NOT include any query parameters nor the hostname, thus allowing you to navigate within the application only. This may be changed in the future. If you need a different behaviour now, just overwrite this method in your controller. Example:
<%= link_to my_messages_path referrer_param => current_path %>
Return the referrer or the current path, it the former is not set. Useful in cases where there might be a redirect path that has to be taken note of but in case it is not present, the current path will be redirected back to. Example:
<%= link_to my_messages_path referrer_param => referrer_or_current_path %>


PRINTED
Thursday, June 01, 2006
I didn’t get up until almost 6:30 AM. I ate and was to work before Seven AM. I worked on sheetrock all day. I don’t think I am going to be able to finish the job this week. David had two presentations he was in charge of to day. When he got home he said things went very well. I talked to Shauna about David’s attitude towards the Church. She said I had better talk to him about that. I told her that I couldn’t talk to him, Jeff or Noland, but they didn’t seem to want to talk about it. After David got home and went in I guess Shauna told him what I had said so he came out and we visited for a while. I came home this evening as Mae was home also. We ate dinner and then watched a show on TV. I filled in my journal for the past two days and then took a shower before going to bed.
Friday, June 02, 2006
I worked up to David and Shauna’s all day. I did get the taping of the sheetrock done. I brought my trailer home with me as the landscapers needed it moved. I was going to put it in the garage but it wouldn’t fit through any of the doors. I didn’t want it left on the street so just brought it on home with me. Mae had Kylan and Ashley here to tend this evening. We enjoyed them and they were good to go to bed. I did get Elise’s bid figured before I quit for the day.
Saturday, June 03, 2006
We slept in until 8 AM this morning. I fixed biscuits and gravy for breakfast. I mainly did it because I want to make them when we are at Lake Powel. I haven’t made them since we got home from our mission and the two times I tried to make them on our mission they were a flop. These turned out very good so I guess we can try them again. Mae took the children to Morgan and got the flowers from the graves and then they went to the park. I called Elise and gave her the prices and she will think it over. I went looking for a boat and was trying to decide between two. I took Mae with me this afternoon and we had about decided on one of two and the salesman showed us a third boat. Of course it is more money but both of the other two needed a trolling motor put on them and this one doesn’t so that saves and puts it close to the same price range. We put $500 down on it and will decide after thinking it over until Monday. Bob fixed dinner for us this evening. They are sure special that way. We were going to go over to Irven and Sandy’s but Sandy call and said the Irven had a bad sore throat, so we will do it another day. We watched a movie that Bob recorded for us, before going to bed.
Sunday, June 04, 2006
We slept in this morning. We walked over to the chapel as we had appointments to meet with our Bishop at 10:30 AM. He asked me if I would accept a calling as a substitute instructor. Of course I accepted it. Mae was set apart in her calling as a substitute instructor. Bob and Carroll invited us for diner. Mae went visiting teaching after dinner. We went over to an open house at the Allen’s as their son enters the mission home on Wednesday. We took our humidifier over to Irven & Sandy’s as Irven is sick. When we got home we played a game of canasta with Bob and Carroll. Bob and I again beat them by quite-a-bit. We made plans and called Shellie concerning our trip next week to Lake Powel. I called Super 8 and made reservations for a room for next Friday.
Monday, June 05, 2006
I got up at 5:30 AM so I could get up to David’s before 8 AM but Sandy called and asked that I fasten the barrels down in their truck. I got to David’s at 8:30 AM. I worked until 5 PM and then cleaned up my tools. It was almost 6:30 PM when I got home. Mae has been sick most of the day and feels worse this evening. I wired some money to Tonie and Roger’s this evening. I took a shower and went to bed.
Tuesday, June 06, 2006
Mae didn’t sleep very well last night. She is having stomach cramps and can’t get warm. I got up at 5 AM and let her sleep. She did fix me some breakfast and a lunch before she came back to bed. I started work at David’s before 7 AM. It was after 6 PM before I finished and cleaned up. I stopped on the way home and filled the truck with natural gas. Mae had dinner ready when I got home. Sandy and Irven are really going through a lot of problems. I hope they can work things out. After dinner Mae gave me a hair cut. I filled out my journal and played a couple of games on the computer before going to bed.
Wednesday, June 07, 2006
We were at the North Davis Hospital at 7 AM for Dr. Jensen to run a EDG-Scope on me. it doesn’t look like there is any improvement in my condition but it also isn’t any worse. The question is do we just let is go and continue to take the medication or do we try to correct the problem with an operation? Dr. Jensen suggested that I not go to work around the paint fumes and on the scissor lift. We came home and ate as I hadn’t eaten since last night. We then took a nap. I had Mark go with me into Peterson Marina and I bought the 1996 Bay Liner boat. We then took it to Willard Bay where Bob and Cole met us and we went for a ride in the boat. It performed well. Mae is still under the weather but feeling a little better. She has been busy preparing for her book group and the Flaming Gorge trip. I helped her a little and went to the store for her. I entered some transactions into the computer and filled in my journal entry.
Thursday, June 08, 2006
I got up at 5 AM and left for David’s about 7 AM. It took me until 1 PM to finish the painting and then with the help of David & Shauna we removed all the masking and got things put back together. David and I cleaned up the scissor lift and loaded it. I called Jeff on the way home. I returned the scissor lift and then went home and got my trailer. I met Jeff at Lincoln Elementary school where we took 6 boxes of Gale’s books and a tree. We took them to their new home. When I got home I put the tools from my truck to my trailer. I made Mark some poles and put them into the ground for the pole beans. Mae had her Book Club meeting this evening. We were late getting to bed as we did some packing for our Lake Powel trip.
Friday, June 09 thru Saturday, June 17, 2006
Lake Powell Vacation
I didn’t take my Lap Top Computer with us so I am going to make one entry for this week.
We got up early and packed the pickup and the boat to be ready to leave for Paige Arizona. Mae and I then went over to Jeff and Gail’s and helped Jeff pack and move their items out of the basement of Gail’s Mother’s home where they have been living, into the garage, so it will be easier for him, his brothers & friend to move their furniture and other items tomorrow. Gail was still teaching school so wasn’t with us. Mae did the packing while Jeff and I carried items and furniture upstairs. Mae is good at packing. I guess that is because of all the practice I have given her with all the moves we’ve made. We worked until after noon when Jeff took us over to Subway and bought us lunch. We ate the sandwiches on the way as we drove. We got to Paige about 8 PM and checked into Motel 8. We then went to Wal-Mart and bought two gas cans.
Saturday morning we went back to Wal-Mart where we bought me a swimming suit, some shorts and some tee shirts. We met Roy, Shellie and the kids at Denny’s at 10 AM where we ate breakfast before going to the lake. We then went to Wahweap Marina to launch our boats and to meet with Butch who Shellie and Roy had made arrangements to rent his house boat for this week. We transferred all our supplies to the house boat and left my boat to be towed behind the house boat while Roy, Shellie, Mae and I went in Roy’s boat to find a camp sight. The boys and two friends stayed on the house boat. We went to Last Chance area and found a place. Butch did have a little trouble on his way out as the tow rope broke and he had to back track quite a ways to get my boat. All turned out ok and we got our sight set up.
We spent Sunday just relaxing and being together. Shellie wanted us to take our boat and go touring. I told her that I didn’t use my boat on Sunday and it upset them just a little. The rest of the week went very well and we had a great time. I got time in fishing, sometimes by myself, a couple of times Butch went with me and a couple of times Mae went with me. We caught quite a few fish but I never found a boil of fish like Randy had told me about. On Thursday morning with Mae with me we did get into a school of stripers and Mae and I caught fish about as fast as we could land them. I wanted to get a picture of Mae catching her forth fish (these fish were from 21 to 26 inches long and quite heavy) so I laid my pole down to take the pictures when a large fish took my bait and pulled my pole into the lake. All I saw was the bubbles as the pole sunk. Besides my fishing everyone had fun with water sports of all kinds. They would usually wake board, knee board and ski in the mornings so I didn’t get to see them doing it, but Mae went with them the mornings when she wasn’t with me, and she really enjoyed watching them. She said Roy, Shellie & Garrett are really good and do all kinds of things on the water. Quint wake boards some too, but Kevis is still a little nervous. She got lots of pictures. Roy and Shellie found a large tube that someone had left (probably it blow of a house boat) but when no one came back for it they brought it back and we all enjoyed riding on it. Quint, Kevis & Quint’s friend, Mason, was riding the tube and Roy was pulling them fast and making the tube have some rough riding when Kevis got hurt. We think he sprained his wrist. After that he was too nervous to do any water sports, even ride again on the tube. Of course, his wrist hurt for several days too. Roy, Shellie, Mae and I took turns cooking the meals and we ate very well. The weather was good although we did get some wind a couple of times. We took my boat out touring on Thursday and went to the Arches Natural Bridge. We had to walk 1 & ½ miles to get to that and it was quite hot, but it was worth the effort. I was very pleased with the performance of our boat.
We packed most every thing up Friday evening and left early Saturday morning to come home. This time Mae and I drove our boat back. We got to the marina before 10 AM and had a couple of hours wait before the house boat got there. That gave us time to clean our boats up and prepare to come home. We again went to Denny’s to eat. Last Saturday when we ate at Denny’s I walked out without picking up my Browning cap. I figured I had lost that hat but when we came back, I saw the waitress that had served us and asked her if anyone had found my hat. She remembered and said that she had put it away for me if I returned for it. I was very surprised and glad for that. Shellie had suggested that we take a walking tour to see a special sight that was advertised on the front of Arizona Highways. After eating we drove out to the area but they wanted about $21 a person to take the tour. We backed out of that. Mae and I then left for home. We talked of taking a few days to come home and visiting Aunt Joy, Uncle Van and Aunt Allison but then we remembered that Gale was to have her baby on Monday so we came on home. We were held up with a traffic problem just after we passed the Highway Intersection 40, so after waiting for over a ½ hour we turned around and went back and took the other route. Going route 40 allowed us to go by Cedar Breaks so we stopped there for a while and enjoyed see that area again. It was after mid-night when we got home and we were very tired. It has been a wonderful vacation and we enjoyed every bit of it.
Sunday, June 18, 2006
It was 1 AM when we got to bed last night so when I woke at 5:30 AM I went back to bed and we didn’t get up until 9:15 AM when we got a phone call asking us to substitute a Primary class today. About that time Bob came down to see if we were up. We had to hurry to get to Church on time. As today is Fathers-Day Mae gave me a new (as the boat and all my toys weren’t enough) and my boys and their sweet wife’s gave me a $60 gift certificate to Sportsman Warehouse. Shellie and Roy gave me a set of salt and pepper grinders for Fathers-Day. I went into the opening of Primary and Mae went into Relief Society. Mae came in when we went to the class room. Weston Greenhow, a twelve year old Deacon was prepared to give the lesson. We were very impressed with his preparations. He had hand outs, had scripture references for the class to look up, used the black board, had a VCR clip to show and was well prepared. Bob and Carroll invited us to have dinner with them. Scott, Mishelle, Kylan and Ashley came over for a while. They gave me a gift card from Sportsman Warehouse that all the boys and their wife’s gave me for a Fathers-Day gift. I took a picture of Bob and Carroll that turned out very nice. I took the computer up stairs and showed that picture and some of our trip to Bob, Carroll, and to Bruce and his family who were visiting. I answered some e-mails and was on the computer getting some of my journal updated this evening. Mae set down and took a nap. It was after 10 PM when we went to bed.
Monday, June 19, 2006 47th Wedding Anniversary
We slept in until Bob called us. He took us to Big 5 sports store where we looked at fishing poles. Mae also bought her some walking shoes. We went back home so Bob could take Carroll to see the Dr.. Mae and I went out to eat at the Star Café. Jeff called to tell us that he had taken Gale into the hospital. He called a little after 2 PM to tell us that Gale had given birth to a 7 lb. 6 oz. Baby boy 19 “ long. He said that both Gale and Benjamin David were doing well. We bought a present and went up to the hospital to visit them. It was exciting to see that sweet little grandson. Gale’s mother and sister were there also. We discovered that both Gail’s widowed mother and us each have 16 grandchildren now with the birth of little Benjamin. We enjoyed holding the baby and seeing how excited Jeff was. The nurse came in and gave the baby his first bath and first shots. Benjamin cried out and his little lips quivered at the pain of the shots. Jeff had to leave the room while the nurse did that. I had tears in my eyes also. We stayed for a while, but then went to Jeff and Gale’s home and got some clothes for Jeff so he could stay the night. We then went to Ream’s and bought some groceries and back to Big 5 to get the fishing poles. They had loaded the reels with fishing line. We then went to the Little Orient and ate. It was late when we got home but we watched the movie “Robin Hood” before going to sleep. It has been a very enjoyable day and especially being with Mae.
Tuesday, June 20, 2006
We again slept in although I got up at 7 AM and let Mae sleep later. Bob prepared a breakfast of biscuits and gravy for us. After breakfast Bob took me to the base where I bought a new suit and a few groceries. Mae and I put up a case of strawberries into freezer jam and I bagged some meat for Mae. Mae and I went back to the hospital to see Gale, Jeff and little Benjamin. We then went to the Ogden Temple and went through a session. We missed the session that the Ward was going on, so we attended a later session. After attending the Temple we stopped at Farr’s and bought Mae an ice cream cone. When we got just about home we stopped at a Maverick and I bought me a yogurt. When we got home I entered my journal for today. I was very tired so we went to bed just after 11 PM. Mae had trouble getting me into bed as I became so tired and everything just seemed to leave me.
Wednesday, June 21, 2006
I got up at 6 AM but let Mae sleep in. I worked on my journal getting it up to date from our Lake Powel trip. It is hard to catch up when you get behind. Bob and I went looking for a edger and some weed spray. We went to a Farm Supply store above Hill Field to get the spray as it was much cheaper than what the lawn and garden centers carried. I sprayed the driveway for weeds and then I put the pole holders on my boat. Charles and Caroline Saunders came over this evening for dinner and then we played Canasta. Charles and I played against our wife’s and we beat them quite badly. It was a very pleasant evening.
Thursday, June 22, 2006
I got up at 6 AM and was up for about an hour before going back to bed for a little while. We went into Ogden for an appointment Mae had with Dr. David Lesser. While I was waiting for Mae I went down to Peterson Marine and got a brace for the boat windshield and ordered a cover for the boat. I also picked up some fishing supplies at Sportsman Warehouse. I went back to get Mae and then we came back to Sportsman Warehouse and bought some life jackets. We stopped at Wendi’s for a quick lunch and then went to Dr. Jensen’s for my appointment. We got home at 4:30 PM and then Bob and I went home teaching to Brother and Sister Johnston. Mae was waiting for me when we got back and we went over to Jeff and Gale’s to take dinner and for Mae to try to locate some things she may have packed for them. It was after 8 PM when we got back home. I had to hurry to get the boat and fishing gear ready to go in the morning. We couldn’t get gas this evening so will have to get it in the morning. Mae made me a lunch for tomorrow.
Friday, June 23, 2006
Bob, Mark and I went fishing at East Canyon Reservoir. It was after 7:30 AM before we got there as I needed to get gas in the boat and the pickup before leaving. We fished until after 12 PM. We had to be back home between 1:30 and 2 PM as Bob had an appointment with his dentist at 2:30 PM. it was a good morning with Bob catching 3 fish, Mark 1 fish and I caught 2 fish. All three of us had several strikes that we didn’t land so it stayed enjoyable. I cleaned the fish after we got home. Bob said he would cook them for breakfast Sunday morning. This evening Mae and I went to Alpine where we attended a wedding reception for Mitchell and Angelina Brown. It was really good to see LaDell and Eleanor Brown and most of their children. Mitchell is their youngest and last to get married. Eleanor isn’t doing very well health wise and seem to be suffering quite bad with Fibermyalgia. It was late when we got home.
Saturday, June 24, 2006
Mae and I over slept so we didn’t get away as early as we wanted this morning. We met Scott and his family at Pineview Reservoir and went fishing and boating this morning. While fishing we saw a moose swimming across the reservoir so we went fairly close to it where Scott could get some pitchers of it. Mae and Michelle had taken lunches so we ate about 11 AM. David and Shauna and their family came up about 1 PM. We did some boating with them and used their float tub to pull behind our boat and give the kids a ride. I went on it with Kylan and Emily and then Kylan and Ashley. It was after 2 PM when we started to go home. Of course we had to load the boat and wipe it down before coming home. We stopped on the way home and filled the pickup and boat with fuel. Mae and I was sure tired when we got home. Mae set down in the recliner and took a nap when we got home. I got most everything out of the boat and then I took a nap. This evening we played a game of Canasta with Bob and Carroll. Carroll and Mae really beat us tonight. We were tired when we came home but I filled out my journal before going to bed.
Sunday, June 25, 2006
I didn’t sleep very well last night and ended up sleeping in the big chair. I woke and got up at 8 AM. Bob cooked the fish we caught on Friday and made biscuits to go with them. Bob didn’t feel well but fixed breakfast for us anyway. We attended meetings then we went up to Devin & Betsy’s for dinner. We enjoyed the visit with them and the food was very good. Betsey gave me back Dad’s diaries that she has been copping. This evening we read more in our book. I talked to Rich and will do the remodeling that Elise wants done. I called Randy and set up a fishing trip for next Friday. Irven called and I will go over to their place on Tuesday and repair their water line. I also scheduled Elise’s job for July 12th. It looks like I am getting pretty scheduled with things to do and I also have the sunroom to sheetrock.
Monday, June 26, 2006
We slept in quite late this morning. I started work on our bank account but didn’t get near caught up. I worked on our boat getting the rod holders mounted. I had to go to town for some bolts so did some errorns for Mae while I was out. We invited Robin Walker and her family over for dinner this evening. We cooked hamburgers on the grill and ate outside. I got the scooter out and let them ride around on it in the back yard. We were tired when they went home, but it was a fun evening. While putting things away we met and visited with our neighbor to the East of us. His name is Sy Ing and he speaks very good English.
Tuesday, June 27, 2006
I slept most of the night in the recliner do to stomach problems. I went over to Irven and Sandy’s and installed a freeze less water faucet in the front of their house. I also grouted the tile I replaced some time ago. Mae had the car heat up on her again today. Bob found me a radiator shop that will flush the cooling system and check the A/C on July 5th. Our Home Teachers came this evening. Mae then went up to Morgan to watch Tyler play ball. I attended the High Priest leadership meeting. After getting home I filled capsules with Ambrotose and Phyt-aloe. It was after 11:30 PM before we got to bed.
Wednesday, June 28, 2006
I got up about 6 AM but then went back to bed. David called about 8 AM so we got up. After some breakfast we loaded a dresser into the trailer and went over to Jeff and Gale’s. Noland came over and helped me carry the old dresser downstairs and carry in the one we brought over. Mae had followed me over but with Noland’s help I didn’t need her help. I recessed a bathroom cabinet into the wall. I had to move some electrical wiring in order to do it. I finished about 4 PM and went home. I moved some of my trailers out of the spot where they were parked so that tomorrow Bob can mow the weeds down. This evening I went with Steve Smith and we visited Sister Johnston and Sister McIntire. I moved a dresser out of the South East bedroom into the center bedroom for Mae. We then went to the grocery store for a few items. When we came out there was a soft ball game going on at the park so we went over and watched it. It was 11 PM before we got home. I set the water on the back yard, filled out this journal entry and went to bed.
Thursday, June 29, 2006
I got up early for a while and then went back to bed until 8 AM. Mae went to support Robin Walker in court this morning. I worked on David and Shauna’s bill and also got a fax sent to the Ace Hardware in Alpine Wyoming. This afternoon I figured the material I would need to build a trailer hitch on the back of our camp trailer so we can pull the boat at the same time. Bob and I then went to Bowman & Kemp’s and ordered the material. Bob will pick it up for me tomorrow. I took a 20 minute nap and then showered and Bob and I went Home Teaching to Jackson’s. Just as we came out Mae came to get me for the Ward social. It was a pretty good social as socials seem to go now days. When we got home I hooked up the boat and got it ready to go for tomorrow. I worked with the lawn sprinklers for a while trying to get them going but didn’t have any success. Scott called this evening and has more of Irven’s mail coming to their address. I have tried to call Irven but they don’t answer.
Friday, June 30, 2006
I got up shortly after 4 AM and was at Randy’s about 5 AM. We went to East Canon Reservoir and went fishing. We used my boat this time and I again was very pleased with the boat. Just after 10 AM we had caught our last fish and I was looking in the proclamation to verify the fish limit when a boat approached us. It was the Fish and Game officers. They ask to see our fish and I felt confident that we just had 8 fish. Whoever when she counted then there was 9. I caught the last fish so I took the ticket. We had a lot of fun any way. After getting home and taking care of the fish I took a nap. Bob and I then went out back and removed several dead trees that we were concerned that they might blow down. We still have one tree to cut down but we were tired and quite for the day. I filled in my journal before we went to bed.


projects
Golang
- goparsec
- Parser combinator library with standard set of combinators, reg-ex based scanner and commonly used Terminal parsers..
- monster
- A Production system in Go. Reverse of parsing, given a BNF grammar generates text.
- gofast
- High performance transport protocol in golang.
- gson
- Collection of JSON algorithms in golang. Includes JSON processing.
- golog
- A logging library in golang, for golang.
- gosettings
- Settings and configuration for golang applications.
Double entry accounting
- goledger
- Double entry accounting for currencies and commodities.
- tall2ledger
- Convert tally books to ledger books.
Python
- pagd
- Static site generator, this site was generated using it. Pagd documentation hosted in python cheese shop.
- pluggdapps
- A component system in python. Pluggdapps documentation hosted in python cheese shop.
- tayra
- Create concise, beautiful and highly re-usable HTML templates. Tayra documentation hosted in python cheese shop.
- tayrakit
- Widget toolkit using tayra.
- eazytext
- Wiki markup language, unlike Markdown, aims to give more options to users at the expense of looking little cluttered.


lockfile-progs(1) Lockfile programs lockfile-progs(1) NAME lockfile-progs - command-line programs to safely lock and unlock files and mailboxes (via liblockfile). SYNOPSIS mail-lock [--use-pid] [--retry retry-count] mail-unlock mail-touchlock [--oneshot] lockfile-create [--use-pid] [--retry retry-count] [--lock-name] filename lockfile-remove [--lock-name] filename lockfile-touch [--oneshot] [--lock-name] filename lockfile-check [--use-pid] [--lock-name] filename DESCRIPTION Lockfile-progs provides a set a programs that can be used to lock and unlock mailboxes and files safely (via liblockfile): mail-lock - lock the current user's mailbox mail-unlock - unlock the current user's mailbox mail-touchlock - touch the lock on the current user's mailbox lockfile-create - lock a given file lockfile-remove - remove the lock on a given file lockfile-touch - touch the lock on a given file lockfile-check - check the lock on a given file By default, the filename argument refers to the name of the file to be locked, and the name of the lockfile will be filename .lock. However, if the --lock-name argument is specified, then filename will be taken as the name of the lockfile itself. Each of the mail locking commands attempts to lock /var/spool/mail/<user>, where <user> is the name associated with the effective user ID, as determined by via geteuid(2). Once a file is locked, the lock must be touched at least once every five minutes or the lock will be considered stale, and subsequent lock attempts will succeed. Also see the --use-pid option and the lock‐ file_create(3) manpage. The lockfile-check command tests whether or not a valid lock already exists. OPTIONS -q, --quiet Suppress any output. Success or failure will only be indicated by the exit status. -v, --verbose Enable diagnostic output. -l, --lock-name Do not append .lock to the filename. This option applies to lock‐ file-create, lockfile-remove, lockfile-touch, or lockfile-check. -p, --use-pid Write the parent process id (PPID) to the lockfile whenever a lock‐ file is created, and use that pid when checking a lock's validity. See the lockfile_create(3) manpage for more information. This option applies to lockfile-create and lockfile-check. NOTE: this option will not work correctly between machines sharing a filesystem. -o, --oneshot Touch the lock and exit immediately. This option applies to lock‐ file-touch and mail-touchlock. When not provided, these commands will run forever, touching the lock once every minute until killed. -r retry-count, --retry retry-count Try to lock filename retry-count times before giving up. Each attempt will be delayed a bit longer than the last (in 5 second increments) until reaching a maximum delay of one minute between retries. If retry-count is unspecified, the default is 9 which will give up after 180 seconds (3 minutes) if all 9 lock attempts fail. EXAMPLES Locking a file during a lengthy process: lockfile-create /some/file lockfile-touch /some/file & # Save the PID of the lockfile-touch process BADGER="$!" do-something-important-with /some/file kill "${BADGER}" lockfile-remove /some/file EXIT STATUS 0 For lockfile-check this indicates that a valid lock exists, otherwise it just indicates successful program execution. Not 0 For lockfile-check a non-zero exit status indicates that the speci‐ fied lock does not exist or is not valid. For other programs it indicates that some problem was encountered. SEE ALSO maillock(3) touchlock(3) mailunlock(3) lockfile_create(3) lockfile_remove(3) lockfile_touch(3) lockfile_check(3) AUTHOR Written by Rob Browning<EMAIL_ADDRESS>0.1.12 2008-02-10 lockfile-progs(1)


Gaston Bachelard says the single most succinct and astonishing thing: We begin in admiration and
we end by organizing our disappointment. The moment of admiration is the experience of something unfiltered,
vital and fresh—it could also be horror—and the moment of organization is both the onset of disappointment and
its dignification; the least we can do is dignify our knowingness, the loss of some vitality through familiarization,
by admiring not the thing itself but how we can organize it, think about it.
I am afraid there is no way around this. It is the one try inevitable thing. And if you believe that,
then you are conceding that in the beginning was the act, not the word.


First Name
Last Name
email
Log In
Name: what is the name of the doctor you're searching for?
Location: what is the city, state, and/or zip code you want to search in?
Range: how wide a search radius (in miles) do you want to search in?
Gender: what gender would you like your doctor to be?
Per page: how many results would like to see per page?
Sort by: what order do you want to see the results?
Accepting new patients: do you want to only see currently available doctors?
Language: do you want to see a doctor that speaks a certain language?
Services: what kind of doctor are you looking for?
Log Out
Help
Name of Doctor
latitude
longitude
Search range
Name of Practice
Insurance
Gender
Male
Female
Results per page
Sort by:
Name
Distance
Clicks
Accepting new patients
Language
Specialties:
search
Data from
BetterDoctor


Thunder no_data test key added :: {{ thunder_no_data_test_key_added }}
{% endif %}
{% if thunder_stale_metrics_test_key_added %}
Thunder stale_metrics test key added :: {{ thunder_stale_metrics_test_key_added }}
{% endif %}
Test Thunder alerting on stale_metrics from a top level namespace.
This simulates a failure where Skyline stops receiving metric data from some metrics.
Select a top level namespace to test, the stale_period (number of seconds that data has not been received set this low like 0), an expiry time to test and the stale_count being the number of metrics you want to simulate as stale.
This test runs via the analyzer/metrics_manager run which runs every 5 minutes, so if you use the default stale_period 0 and expiry 299
a stale_metrics alert for the namespace should fire on the next analyzer/metrics_manager run and a recovered notice should trigger on the run thereafter


To start the tests click Start. Each test is run in order (downloaded from the server). The first canvas is the reference image, the second is a live sketch that has just been executed, the third is a visual diff. The diff is calculated with a tolerance value (e.g., ~2%). If the third canvas is green, the test passed. If it is white with red pixels (or all red), it failed, and the red shows where the pixels differ. NOTE: make sure you are running the tests appropriate for your browser/OS combo. Also, you must run this from a web server vs. localhost. You can generate ref tests here.


|
C++ High Level Types
This library provides commonly used high level types and methods for easier and better coding.
|
Encapsulates enumeration functionality and adds high level methods. More...
#include <henum.h>
Public Member Functions | |
| Enumeration () | |
| Empty constructor. More... | |
| virtual | ~Enumeration () |
| Destructor. | |
| String | getName () const |
| Gets the String name. | |
| bool | operator> (const Enumeration &other) const |
| Checks if this Enumeration is greater than another Enumeration. More... | |
| bool | operator< (const Enumeration &other) const |
| Checks if this Enumeration is less than another Enumeration. More... | |
| bool | operator>= (const Enumeration &other) const |
| Checks if this Enumeration is greater than or equal to another Enumeration. More... | |
| bool | operator<= (const Enumeration &other) const |
| Checks if this Enumeration is less than or equal to another Enumeration. More... | |
| bool | operator== (const Enumeration &other) const |
| Checks if this Enumeration equals another Enumeration. More... | |
| bool | operator!= (const Enumeration &other) const |
| Checks if this Enumeration non-equals another Enumeration. More... | |
Public Attributes | |
| unsigned int | value |
| The enumeration value. | |
Protected Member Functions | |
| Enumeration (unsigned int value) | |
| Basic constructor. More... | |
| virtual Map< unsigned int, String > & | _getInstances () const |
| Gets the Map of Enumeration instances that can exist. More... | |
| void | _addNewInstance (const String &className, const String &name) |
| Adds a new possible instance to the list. More... | |
| void | _addNewInstance (const String &className, const String &name, unsigned int value) |
| Adds a new possible instance to the list. More... | |
Encapsulates enumeration functionality and adds high level methods.
| hltypes::Enumeration::Enumeration | ( | ) |
Empty constructor.
|
protected |
Basic constructor.
| [in] | value | The Enumeration value. |
|
protected |
Adds a new possible instance to the list.
| [in] | className | Name of the Enumeration. |
| [in] | name | Name of the Enumeration value. |
|
protected |
Adds a new possible instance to the list.
| [in] | className | Name of the Enumeration. |
| [in] | name | Name of the Enumeration value. |
| [in] | value | Value to add to the list. |
|
inlineprotectedvirtual |
Gets the Map of Enumeration instances that can exist.
Reimplemented in hltypes::FileBase::AccessMode, and hltypes::StreamBase::SeekMode.
| bool hltypes::Enumeration::operator!= | ( | const Enumeration & | other | ) | const |
Checks if this Enumeration non-equals another Enumeration.
| [in] | other | Other Enumeration. |
| bool hltypes::Enumeration::operator< | ( | const Enumeration & | other | ) | const |
Checks if this Enumeration is less than another Enumeration.
| [in] | other | Other Enumeration. |
| bool hltypes::Enumeration::operator<= | ( | const Enumeration & | other | ) | const |
Checks if this Enumeration is less than or equal to another Enumeration.
| [in] | other | Other Enumeration. |
| bool hltypes::Enumeration::operator== | ( | const Enumeration & | other | ) | const |
Checks if this Enumeration equals another Enumeration.
| [in] | other | Other Enumeration. |
| bool hltypes::Enumeration::operator> | ( | const Enumeration & | other | ) | const |
Checks if this Enumeration is greater than another Enumeration.
| [in] | other | Other Enumeration. |
| bool hltypes::Enumeration::operator>= | ( | const Enumeration & | other | ) | const |
Checks if this Enumeration is greater than or equal to another Enumeration.
| [in] | other | Other Enumeration. |


JSComplexity.org runs on Node.js and Express, using Hogan-Express for template rendering and Stylus to generate CSS. The source code is available on GitHub, under the MIT license. The styling was done by genius front-end web developer extraordinaire, Perry Harlock.
The complexity reporting is performed by escomplex, a Node.js-based library that analyses syntax trees generated by the Esprima JavaScript parser. If you need to analyse a large codebase, you might find it easier to install complexity-report, a command-line wrapper for escomplex, on to a development machine or CI server. Doing so will also enable you to take advantage of further complexity metrics for first-order density, change cost and core size, on a project-wide basis. Detailed instructions for setting up complexity-report can be found in the readme file.


[§201-101.5] Definitions. As used in this part:
"Department" means the department of business, economic development, and tourism.
"Director" means the director of business, economic development, and tourism. [L 1999, c 112, pt of §1]


/* * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights * Reserved. This file contains Original Code and/or Modifications of * Original Code as defined in and that are subject to the Apple Public * Source License Version 1.1 (the "License"). You may not use this file * except in compliance with the License. Please obtain a copy of the * License at http://www.apple.com/publicsource and read it before using * this file.  Please see the * License for the specific language governing rights and limitations * under the License. * * @APPLE_LICENSE_HEADER_END@ */ /* maptable.h Scalable hash table of mappings. Bertrand, August 1990 Copyright 1990-1996 NeXT Software, Inc. */ #warning the API in this header is obsolete #ifndef _OBJC_MAPTABLE_H_ #define _OBJC_MAPTABLE_H_ #import <objc/objc.h> /*************** Definitions ***************/ /* This module allows hashing of arbitrary associations [key -> value]. Keys and values must be pointers or integers, and client is responsible for allocating/deallocating this data. A deallocation call-back is provided. NX_MAPNOTAKEY (-1) is used internally as a marker, and therefore keys must always be different from -1. As well-behaved scalable data structures, hash tables double in size when they start becoming full, thus guaranteeing both average constant time access and linear size. */ typedef struct _NXMapTable { /* private data structure; may change */ const struct _NXMapTablePrototype *prototype; unsigned count; unsigned nbBuckets; void *buckets; } NXMapTable; typedef struct _NXMapTablePrototype { unsigned (*hash)(NXMapTable *, const void *key); int (*isEqual)(NXMapTable *, const void *key1, const void *key2); void (*free)(NXMapTable *, void *key, void *value); int style; /* reserved for future expansion; currently 0 */ } NXMapTablePrototype; /* invariants assumed by the implementation: A - key != -1 B - key1 == key2 => hash(key1) == hash(key2) when key varies over time, hash(key) must remain invariant e.g. if string key, the string must not be changed C - isEqual(key1, key2) => key1 == key2 */ #define NX_MAPNOTAKEY ((void *)(-1)) /*************** Functions ***************/ OBJC_EXPORT NXMapTable *NXCreateMapTableFromZone(NXMapTablePrototype prototype, unsigned capacity, void *z); OBJC_EXPORT NXMapTable *NXCreateMapTable(NXMapTablePrototype prototype, unsigned capacity); /* capacity is only a hint; 0 creates a small table */ OBJC_EXPORT void NXFreeMapTable(NXMapTable *table); /* call free for each pair, and recovers table */ OBJC_EXPORT void NXResetMapTable(NXMapTable *table); /* free each pair; keep current capacity */ OBJC_EXPORT BOOL NXCompareMapTables(NXMapTable *table1, NXMapTable *table2); /* Returns YES if the two sets are equal (each member of table1 in table2, and table have same size) */ OBJC_EXPORT unsigned NXCountMapTable(NXMapTable *table); /* current number of data in table */ OBJC_EXPORT void *NXMapMember(NXMapTable *table, const void *key, void **value); /* return original table key or NX_MAPNOTAKEY. If key is found, value is set */ OBJC_EXPORT void *NXMapGet(NXMapTable *table, const void *key); /* return original corresponding value or NULL. When NULL need be stored as value, NXMapMember can be used to test for presence */ OBJC_EXPORT void *NXMapInsert(NXMapTable *table, const void *key, const void *value); /* override preexisting pair; Return previous value or NULL. */ OBJC_EXPORT void *NXMapRemove(NXMapTable *table, const void *key); /* previous value or NULL is returned */ /* Iteration over all elements of a table consists in setting up an iteration state and then to progress until all entries have been visited. An example of use for counting elements in a table is: unsigned count = 0; const MyKey *key; const MyValue *value; NXMapState state = NXInitMapState(table); while(NXNextMapState(table, &state, &key, &value)) { count++; } */ typedef struct {int index;} NXMapState; /* callers should not rely on actual contents of the struct */ OBJC_EXPORT NXMapState NXInitMapState(NXMapTable *table); OBJC_EXPORT int NXNextMapState(NXMapTable *table, NXMapState *state, const void **key, const void **value); /* returns 0 when all elements have been visited */ /*************** Conveniences ***************/ OBJC_EXPORT const NXMapTablePrototype NXPtrValueMapPrototype; /* hashing is pointer/integer hashing; isEqual is identity; free is no-op. */ OBJC_EXPORT const NXMapTablePrototype NXStrValueMapPrototype; /* hashing is string hashing; isEqual is strcmp; free is no-op. */ OBJC_EXPORT const NXMapTablePrototype NXObjectMapPrototype; /* for objects; uses methods: hash, isEqual:, free, all for key. */ #endif /* _OBJC_MAPTABLE_H_ */


/ ____| | | | ____| __ \ | (___ | |__| | |__ | | | | \___ \| __ | __| | | | | ____) | | | | |____| |__| | |_____/|_| |_|______|_____/ slack.history.exporter.daily
SHED(1)
shed - export daily slack channel history
shed subcommand args
shed exports daily slack channel history using slack.sh
date-oldest yyyy-mm-dd
help
Export channel history since 8 Apr 2018
shed date-oldest 2018-04-08
Get help
shed help
Add alias shed
such as alias shed='bash /path/to/shed.sh/shed.sh'
optional
Settup environment in slack-config.sh
such as
{
local slack_api_token
local channel
local member_ids
slack_api_token="SLACK_API_LEGACY_TOKEN_FOR_TARGET_WORSPACE"
channel=
member_ids="\"DUMMYID1\" \"DUMMYID2\" \"DUMMYID3\""
}
Nicholas M Shellabarger <https://github.com/temptemp3>
SHED(1)


+++ title = "Oaxaca" lat = 17.062200 lon = -96.712474 +++
Oaxaca (pronounced "wa-hukka") is a beautiful city, but unfortunately, I only left myself one day to see it. I don't know why Oaxaca is listed by DFAT as a dangerous city, or why it's reported to be a poverty-stricken or a dirty city, because it is none of these things. It has a beautiful historic centre, great markets, and really good food. All I can say to you, Oaxaca, is this: sorry, and I hope I can see you properly next time.
{{< galleryphoto "2007-03-17-10-00-00--avenida-lining-oaxaca-zocalo.jpg" >}}


This is a frustrating problems for our clients.Do you trouble getting rid of that annoying virus? We are here to help. Let us use our expertise to get rid of the virus and put you back in command. We will also recommend the latest and greatest virus protection and malware programs available to help prevent further infections.
Contact UsThis is a frustrating problems for our clients.Do you trouble getting rid of that annoying virus? We are here to help. Let us use our expertise to get rid of the virus and put you back in command. We will also recommend the latest and greatest virus protection and malware programs available to help prevent further infections.
Contact UsWho needs a tune-up? answer these questions to find out. Is your pc slow or cannot keep up?Does it seem to have a mind of its own? Has it been taking countless minutes to log into Windows? Do you find yourself restarting your computer because it constantly freezes? Well your might need a tune-up just like your car.
Contact Us


Toggle navigation
ABOUT
BLOG
FREE TRIAL
LOGIN
First Name
Last Name
Phone Number
Email Address
Password
Title
Company
CRM
--CRM System--
--None--
SalesForce.com
Microsoft Dynamics
Oracle / RightNow
SAP
SugarCRM
Goldmine
Sage
ACT
SalesLogix
Custom
Other
Additional Info
Join Now


We have sent a text message containing a verification code to the mobile phone number registered on your account. Enter the verification code below along with your new password.
A verification code is required.
OTP length is too long
Please enter your new password.
Please ensure your new password meets the criteria below.
Please re-enter your new password.
Your passwords do not match.