The Seattle U men’s soccer team beats host Loyola Marymount 3-1 in the first round of the NCAA tournament
by Seattle Times staffLOS ANGELES — No. 16 Seattle University won 3-1 at Loyola Marymount in the first round of the NCAA tournament Thursday night.
Connor Noblat, Jesse Ortiz and Harrison Kurtz scored as the Redhawks stretched their unbeaten streak to 15 games.
Seattle U (15-3-4) next heads to seventh-seeded Stanford on Sunday for the second round. Kickoff is set for 5 p.m. at Stanford’s Cagan Stadium. The match will mark the first meeting between the programs.
SU extended its unbeaten streak to 15 matches, good for second-longest in the nation behind only Missouri State (19).
The Redhawks have now won an NCAA tournament game in each of their four Division I appearances.
SU volleyball season ends
OREM, Utah — The Seattle U volleyball season ended as third-seeded Kansas City defeated the Redhawks 25-20, 22-25, 25-15, 25-19 during the first round of the Western Athletic Conference tournament.
Advertising
The Redhawks (13-18) qualified for the WAC tournament for the seventh consecutive season.
Eve Kerschenbaum paced Seattle U with 15 kills for her 24th double-figure outing of the year. Rachel Stark had 10 kills and 11 digs. Ezgi Ozkan surpassed the 30-assist mark for the 15th time with 34.
 The Falcons (13-14, 10-9 Great Northwest Athletic Conference) wrap up the season Saturday at Alaska Anchorage.
Honors
Washington State pitcher Owen Leonard was selected to receive the Pac-12 Conference Student-Athlete Advisory Committee Leadership Award.
Men’s soccer
The Tacoma Defiance announced it has signed midfielders Jesse Daley and Shandon Hopeau as well as defenders Antonee Burke-Gilroy and Nick Hinds to contracts for the 2020 season. The club also exercised the options of forward Azriel Gonzalez and defender Sam Rogers.
From sports-information reports.


Name
Created on
Created by
Active?
{{entity.name}}
{{entity.createdOn}}
N/A
{{entity.username}}
Unknown


A few weeks ago we published an open source framework that covers a scenario required by many partners I’ve been working with on Azure over the course of the past 4 years: asynchronous execution of jobs on compute instances in the background – or simple batch processing.
Click here if you want to learn more: http://blog.mszcool.com/index.php/2014/06/geres2-an-oss-framework-for-reliable-execution-of-background-jobs-on-azure/.
As one of the product owners of this project I am really proud of what we achieved and the collaboration we're having now with the Azure product group. Just also visit our Codeplex Workspace (geres2.codeplex.com) if you're interested in learning more, trying it out and contributing to the project.


I studied Translation and Interpreting and I have been working as a freelance translator for the last 2 years. My specialization is legal translation and conference interpreting. When I lived in Brussels I had the chance to work for the European Parliament and I also did an internship at the European Commission. My work languages are Spanish, English and French.
I was searching for new horizons and challenges, so I decided to study a Full Stack Developer course
at Geeks Hubs in September 2020.
I consider myself lucky to have always worked in a constantly changing international environment.
This is because I am a very active person who is willing to learn things everyday.
If you would like to know further about me, please check this:


First appearing in 1991, Python is a general-purpose, high-level, interpreted programming language whose design focus emphasizes code readability. Whether for processing/analyzing data to powering many well-known applications, Python is not only a great language for new programmers but also powerful enough for seasoned developers building whatever they can think of.
Beautiful is better than ugly;
Explicit is better than implicit;
Simple is better than complex;
Complex is better than complicated;
Readability counts;
The Zen of Python


Control key pins previews. Learn more
We're delighted to announce that SwiftPreview has successfully upgraded to version 2.0! This is a huge
release and implements the largest feature requests from our users. You can now close
this window, or look below to review the new features, and customize when and
how previews show up. By default, we'll always show a preview after hovering on a link for a short
amount of time. You can pin the preview to the screen for easy reading by tapping the control key. Also, if
you'd prefer not to see so many previews, you can set previews to appear only while pressing
the shift key.


CIIN urge operators to give value in services - The Nation Newspaper
INSURANCE companies need to reorganise their operations and focus on promoting value to deepen penetration, the President Chartered Insurance Institute of Nigeria (CIIN), Eddie Efekoha has said.
He spoke during the opening of the Institute’s 2019 Annual Education Seminar with theme: “Financial Inclusion and Insurance – Issues, Challenges and opportunities” in Enugu State.
Efekoha who is also the Managing Director of Consolidated Hallmark Insurance Plc said the theme was specially selected to throw further light on the importance of inclusion, the roles of emerging markets and need for creativity in the offering of services by insurance stakeholders in order to grow the insurance industry.
He stated that it is common knowledge that insurance penetration is nowhere near where it should be in the country.
He pointed out that as practitioners, they can also acknowledge that companies are doing all that they can within the law to reach out to customers in order to create a sustained demand for insurance products.
He said the question rather is whether the practitioners are putting in their best efforts and what more can be done to improve their lot.
He said: “Equally, insurance companies are being tasked to reorganise their operations and focus on promoting value. This will in turn increase the number of persons who embrace insurance, turning them into ambassadors no matter in what sector they actively function.
“This seminar theme beams a spotlight on financial inclusion as a major facilitator of the growth of the industry. Even the smallest molecule of our operations should be clear and concise to our target audience and our messages should reach them where ever they are.”


Shall we live in sin that grace may abound ? God forbid.
He that comes unto the lord must come believing that he has a reward for them that diligently seek him
Rapid Prototyping
Shall we live in sin that grace may abound ? God forbid.
He that comes unto the lord must come believing that he has a reward for them that diligently seek him
Design & Development
Shall we live in sin that grace may abound ? God forbid.
He that comes unto the lord must come believing that he has a reward for them that diligently seek him
Summary
I am a UI/UX Designer and an Interface Developer who is driven by simplicity and I believe in bringing solutions to life by creating
simple but clear designs and websites that appeal to both purpose and aesthetics.


Secret Agent Supply Inc.
New Arrival
Sport Bikes And Motorcycles
Eyewear
Apparel
Gadgets
Vehicles
Classes
Contact
Menu
Exploding Pen
Cellular Watch
Thermal Glasses
Location
-47.346436, 84.32354
Hours
0800 - 1600


Go to File on top, always visible and next to the first match
-
anonymous
Command-T is awesome, thanks for the plugin.
Is there a chance to configure Command-T to have the Go To File right next to the first match and the text that we type in always visible. I am using Macvim and notice that in some instance I cant see what I've type and I have to move my eye so see if the file I want has been matched or not.
Cheers
-
Greg Hurrell
Not sure I fully understand what you are asking here, but will try to answer anyway.
There is one option that might help you here,
g:CommandTMatchWindowAtTop
. See:h command-t-options
for more details:|g:CommandTMatchWindowAtTop| boolean (default: 0) When this settings is off (the default) the match window will appear at the bottom so as to keep it near to the prompt. Turning it on causes the match window to appear at the top instead. This may be preferable if you want the best match (usually the first one) to appear in a fixed location on the screen rather than moving as the number of matches changes during typing.
As for the prompt text not always being visible, I've noticed this too. It is some kind of redraw issue, and I've noticed it more in MacVim 7.3 than I did under 7.2 (although it did happen under 7.2 as well). I am not sure of the exact cause but if it can be fixed I would certainly like to do so.
It seems that MacVim is repainting that part of the screen, wiping it clean, after Command-T has displayed the prompt. Doesn't happen in Terminal Vim, and perhaps not in other GUI-based Vims either.
Like I said, would like to find a workaround but haven't been able to yet. See ticket #1523 for a possibly related issue ("--No lines in buffer--" appears in status line when match listing is first shown). Since updating to MacVim 7.3 I am seeing the "--No lines in buffer--" message much less, if at all, and instead seeing it just wipe the command line.
I'm going to open a new ticket for this anyway (ticket #1692), just to get it in the tracker.
Would be nice to find a workaround. Other possible options include patching MacVim, or rewriting the prompt code to not use the command area at all, but instead part of the match window (similar to FuzzyFinder).
Reply
This topic is now closed.


WebAudioSurroundTemplates
This example plays nature sounds in a sequence of states: forest -> ocean -> thunder.
start
Sounds by
dobroide
,
juskiddink
,
lennyboy
,
svampen
,
tinga
.


{{userSelected?.user}}
{{userSelected?.id}}
{{userSelected?.about}}
otherDetails : {{userSelected.profession?.otherDetails}}


{% extends "base.html" %} {% block login %} {% if not username%} Login {% else %}
With supporting text below as a#} {# natural


{% extends "r-layout.html" %} {% block content %}
PassHub needs your verified email address. Why?
When you share safes, passwords and files, PassHub uses email addresses of both parties.


Hera is an interface to software and data provided by the High Energy Astrophysics Science Archive Research Center at NASA/Goddard Space Flight Center. The data are from satellites which detect x-rays and gamma rays from objects such as black holes, neutron stars, galaxies, and supernovae.
This interface has been adapted for use by students, educators, amateur astronomers and the general public, and allows them to use the same software that astronomers use on the same data sets that astronomers analyze. These data may be used for extensions of classroom lessons, science fair projects, research projects, etc.
Student Hera guides students through a self-assessed series of activities, starting with practice interpreting light curves for binary systems. Students then install Hera access data from the Rossi X-Ray Timing Explorer satellite (RXTE). Students analyze the data and compare their results with results in the professional literature. A file of the assessment results can be electronically saved and submitted to the professor.
There are different ways to start up a Student Hera session. But first, tare two basic requirements to run Student Hera:
For fv running on the Microsoft Windows and Apple Mac OS X, as of fv release 5.1, the installation procedure will produce 3 icons for users, fv, Hera and Student Hera. To start up any of these operation, just double click on the icon.
For fv running on the regular UNIX machine (like Linux), user can start up Student Hera by typing this command on the command line prompt:
fv -student
Regular Hera can also be started on the command line via this command:
fv -hera
After brief moment, a login panel will start. If you have an estiablished account, typing your user ID and password to start use regular Hera. For Student Hera, only the user ID is needed. If you already have try Student Hera before, the last user ID used will be populated for you on the login panel. Or if you prefer, click on "New" to create a brand new ID.
For more information on Student Hera, visit the Student Hera web site at
http://imagine.gsfc.nasa.gov/docs/teachers/hera/what.html
Go to Hera Connection Help.
Go to About fv.


--- layout: page title: "Developing Web Applications with Haskell and Yesod" prev: OEBPS/pr01s03.html next: OEBPS/pr01s05.html book_path: books/michael-snoyman-developing-web-applications-with-haskell-and-yesod-_oeb/ --- {% include JB/setup %} {% raw %}
Safari Books Online (www.safaribooksonline.com) is an on-demand digital library that delivers expert content in both book and video form from the world’s leading authors in technology and business.
Technology professionals, software developers, web designers, and business and creative professionals use Safari Books Online as their primary resource for research, problem solving, learning, and certification training.
Safari Books Online offers a range of product mixes and pricing programs for organizations, government agencies, and individuals. Subscribers have access to thousands of books, training videos, and prepublication manuscripts in one fully searchable database from publishers like O’Reilly Media, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technology, and dozens more. For more information about Safari Books Online, please visit us online.


Cloud Asset V1 API - Class AnalyzeIamPolicyRequest (2.9.0)
public sealed class AnalyzeIamPolicyRequest : IMessage<AnalyzeIamPolicyRequest>, IEquatable<AnalyzeIamPolicyRequest>, IDeepCloneable<AnalyzeIamPolicyRequest>, IBufferMessage, IMessage
Reference documentation and code samples for the Cloud Asset V1 API class AnalyzeIamPolicyRequest.
A request message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.AnalyzeIamPolicy].
Inheritance
System.Object > AnalyzeIamPolicyRequestImplements
Google.Protobuf.IMessage<AnalyzeIamPolicyRequest>, System.IEquatable<AnalyzeIamPolicyRequest>, Google.Protobuf.IDeepCloneable<AnalyzeIamPolicyRequest>, Google.Protobuf.IBufferMessage, Google.Protobuf.IMessageNamespace
Google.Cloud.Asset.V1Assembly
Google.Cloud.Asset.V1.dll
Constructors
AnalyzeIamPolicyRequest()
public AnalyzeIamPolicyRequest()
AnalyzeIamPolicyRequest(AnalyzeIamPolicyRequest)
public AnalyzeIamPolicyRequest(AnalyzeIamPolicyRequest other)
| Name | Description |
| other | AnalyzeIamPolicyRequest |
Properties
AnalysisQuery
public IamPolicyAnalysisQuery AnalysisQuery { get; set; }
Required. The request query.
| Type | Description |
| IamPolicyAnalysisQuery |
ExecutionTimeout
public Duration ExecutionTimeout { get; set; }
Optional. Amount of time executable has to complete. See JSON representation of Duration.
If this field is set with a value less than the RPC deadline, and the execution of your query hasn't finished in the specified execution timeout, you will get a response with partial result. Otherwise, your query's execution will continue until the RPC deadline. If it's not finished until then, you will get a DEADLINE_EXCEEDED error.
Default is empty.
| Type | Description |
| Google.Protobuf.WellKnownTypes.Duration |


Check
Remove
before
flight
Initialize
Stallation
Angle
Launch
10
Abort
Status
T+
0
s
Apogee
0
m
Launch
Speed
0
m
s
Height
0
m
Distance
0
m
Parachute Deploy
Map
Distance
0
m
Command
Clear
test
stop
File Explorer
Debugger


A simple example with an event when the mouse is moved off of the image.
Mouse off of the image in order to trigger the event


Pol Cortés - Designer
I’m Pol Cortés, designer for The Witcher Ties of Destiny. I’ve been working in the conceptual part of the game and later on moved to the environment team to do blockouts, prop placing and collisions. I’ve also helped the particles team. I have been managing our Twitter account and updating it regularly. Finally I’ve had the opportunity to work on something I really love about game development, QA.
PROJECT CONTRIBUTION
- Character Conceptualization: Creating the characters from scratch. Iterating their concept until their design fit our game style.
- Blockouts: Doing the blockout for the level to make it nice to go through it and iterate it to improve it.
- Prop Placing: Place the final props all over the level.
- Collisions: Doing the collider for the city level and iterating it to make it better.
- Particle Creation: Creating the fire particles, the bonfires and the potions with its particles.
- QA: Doing playtesting sessions, spotting bugs and reporting it to the corresponding teams.


This page shows the results of running the anomaly detection function on some test data for some anomaly threshold configuration.
{% if plot_data and lookup %}The test data series is shown in grey. The segment and segment endpoints are shown in orange; if a revision is specified, a blue line is also shown indicating the position of the revision. Above each detected anomaly is a label showing the revision number and percent change from the median before the anomaly to the median after the anomaly.
{% endif %} {% if error %}{{error}}
{% endif %}About the threshold parameters
-
max_window_size
is the number of points that's analyzed at once. A larger window size means that more points before a change-point can be considered. The window is split into two segments. Must be at least twice as big as themin_segment_size
. -
min_segment_size
determines how many points must be on both sides of the change-point. A larger value makes it less sensitive to noise, but it also increases the time before an alert is fired. -
min_relative_change
is the minimum relative difference between the median of the points before and the median of the points after. that's reported. For example, to disallow alerts for a change of less than 5%, this can be set to 0.05. -
min_absolute_change
sets a threshold on the absolute difference before and after. -
multiple_of_std_dev
is a threshold on the jump size measured in multiples of the standard deviation of the points. For example, a value of 3.0 means that only a jump 3 or more times larger than a sample of points around the change point is considered. -
min_steppiness
is a measure of how similar the change is to a perfect step, where 0.0 corresponds to a flat line or completely random noise, and 1.0 corresponds to a any perfect step.
Recent Anomaly entities in the datastore for this test:
| End Revision | Bug ID | Median before anomaly | Median after anomaly | Percent changed | Timestamp |
|---|---|---|---|---|---|
| {{alert.revision}} | {{alert.bug_id}} | {{alert.median_before}} | {{alert.median_after}} | {{alert.percent_changed}} | {{alert.timestamp}} |


a kinder, gentler machine vision python library
SimpleCV is an interface for Open Source machine vision libraries in Python. It provides a consise, readable interface for cameras, image manipulation, feature extraction, and format conversion. Our mission is to give casual users a comprehensive interface for basic machine vision functions and an elegant programming interface for advanced users.
Download from SourceForge: <http://sourceforge.net/projects/simplecv/files>
SourceForge Project Page: <http://sf.net/p/simplecv>
We like SimpleCV because:
- Even beginning programmers can write simple machine vision tests
- Cameras, video files, images, and video streams are all interoperable
- Information on image features can be extracted, sorted and filtered easily
- Manipulations are fast, with easy to remember names
- Linear algebra is strictly optional
Here is the simplecv “hello world”:
import SimpleCV
c = SimpleCV.Camera()
c.getImage().save("picture.jpg")
For more code snippets, look at the cookbook, or the example scripts.
You will absolutely need:
- OpenCV installed for your platform http://opencv.willowgarage.com/wiki/InstallGuide
- SciPY/Numpy installed for your platform http://www.scipy.org/Download
Once you have all the required libraries installed:
easy_install simplecv
If you need more help, look at the `installation docs`<installation.html>
Blob detection:
Barcode reading:
Our `installation docs`<installation.html> contain videos for installing on each platform.
Anthony shows off the SimpleCV interactive shell <http://youtu.be/oKyPHtcujyE>
Nate demonstrating the Kinect Coloring Example
Anthony shows off the simplecam example


Link Name
is a link to another nifty site to see new adjust
This is a Header
This is a Medium Header
- Team flow started
- Added yet another feature from dev
- I think is better
- New line for rebase
- new second line for rebase
Send me mail at
<EMAIL_ADDRESS>This is a new paragraph!
This is a new paragraph!
This is a new sentence without a paragraph break, in bold italics.


It's Great to Enumerate
Traversing the Enumerable Module
The Enumerabable Module is one of the more esoteric concecepts in Ruby for the newb, because it has methods that work on a number of different classes, and you can even mix the Enumerable Module into your own classes when you create them, although the methods in the Enumerable Module are not all the same in any class, and simimlarly names methods do not work the same in eveyr class.
Consider the Enumerable#map method. This is a robust method that will allow you to iterate a block of code over an array, and produce an array that has the block of code effect each item. For instance, if you have an arraty of names, and you want them all to be to be capitalized, you can apply the .map method as follows:
names_arr = ["rebecca", "yanni", "james", "ramon", "ben"]
names_arr.map {|name| name.capitalize }
=> ["Rebecca", "Yanni", "James", "Ramon", "Ben"]
Each item in the array is capitalized, and the result in an array. The .map method iterates over the array and produces a result that is itself an array, without using a loop of any kind. This is a powerful option and just the start of what one can do the apply the Enumerable Module.


A highly customizable gallery plugin for jQuery.
Read more here: http://coffeescripter.com/2009/07/ad-gallery-a-jquery-gallery-plugin/ | More code at Coffeescripter.com
Examples of how you can alter the behaviour on the fly; Effect: | Toggle slideshow


{% extends "email_alert_base.html" %}
{% block primary_text_1 %}
You're ineligible to apply online because your licence wasn't surrendered to the police.
Apply in-person for a review by:
Visiting ICBC, select
ServiceBC
locations, or an appointed agent in-person within 7-days
of the date the prohibition was issued.
Taking your Notice of Prohibition with you.
Surrendering your licence OR if your licence is lost or stolen,
completing a Statutory Declaration for a Lost or Stolen Licence.
Completing an Application for a Review of a Driving Prohibition.


Neil Humphreys: Who's getting sacked in the morning?
Silva, Emery and Pellegrini all fighting to be fired
by Neil HumphreysHistory of a bizarre kind was made at the weekend when rival supporters taunted opponents with that eternally popular chant.
You're getting sacked in the morning.
But it was sung at three different grounds, by six different clubs.
First, Tottenham Hotspur's gleeful lot started on West Ham United's Manuel Pellegrini. And the unhappy Hammers joined in.
At Goodison Park, Norwich City piped up to ridicule Everton's Marco Silva and the apoplectic Toffees sang in agreement.
And then the glum Gunners competed with Southampton fans to tell Unai Emery not to make any training plans for the week.
They're all getting sacked in the morning, apparently, but who's going first?
AWRY FOR EMERY
If the measure is how a club has fallen, then Emery has fallen furthest at Arsenal. The Spaniard was hired specifically to end the malaise of Arsene Wenger, only to extend the mediocrity.
Five English Premier League games without a win are an indictment, sure, but the lacklustre nature of the performances is unforgivable.
Arsenal pinched a lucky draw against Southampton, despite finishing with a front four of Mesut Oezil, Nicolas Pepe, Alexandre Lacazette and Pierre-Emerick Aubameyang, which is like making The Beatles play like the Teletubbies.
-
BOOKMAKERS' ODDS ON NEXT MANAGER TO BE SACKED
• Marco Silva (Everton) : 1/3
• Unai Emery (Arsenal): 5/1
• Manuel Pellegrini (West Ham): 8/1
• Quique Sanchez Flores (Watford): 12/1
• Ralph Hasenhuttl (Southampton): 12/1
• Ole Gunnar Solskjaer (Manchester United): 16/1
But tactical dogma may prove to be Emery's undoing. He famously said his sides play from the back, always in possession, always on the attack. His philosophy was non-negotiable, whatever the personnel.
But the current personnel is a back three that includes David Luiz, who has never allowed match-day responsibilities to disturb match-day snoozes.
The Brazilian's narcolepsy is contagious. Five defenders and two midfielders dozed off for Southampton's opener.
Emery has the best intentions, but the worst defensive employees to execute his plan. Unless he introduces a radically different approach - i.e. stop playing from the back until he has defenders with more mobility than a line of fussball players - Arsenal are going to concede soft goals against soft opposition.
The amiable Emery is going down with a sinking vessel, anchoring himself to a suicidal tactical strategy. Nice guys don't always finish last, but they definitely don't finish in the top four when they've got Luiz playing in a brittle back three.
PELLEGRINI UNDER SCRUTINY
Pellegrini, on the other hand, doesn't concern himself with the "nice guy" cliche. He presents himself as an ageing Chilean assassin coming out of retirement for one more hit.
But nothing is on target. If West Ham stay on their current trajectory, they'll be relegated.
After the Tottenham loss, Roy Keane pointed out that the Hammers were "rubbish, absolute rubbish, an absolute disgrace". Masochistic West Ham supporters thought Keane was being too kind.
Pellegrini's winless run stretches to eight games now, but there are eight million reasons a year not to terminate his contract.
But if he persists with a foolhardy 4-1-4-1 that isolates Sebastien Haller up front and overwhelms anchorman Declan Rice, then West Ham must contemplate the hundreds of millions in lost revenue from eventual relegation.
Felipe Anderson's confidence has deserted him and the Hammers are lumbered with a goalkeeper whose only purpose appears to be comic relief through the festive season.
Normally, the joke goes that a poor performer must have won a competition to play in the EPL. Roberto looks like he lost the competition.
The Spanish goalkeeper is being punished for not being in control of his own limbs. He's already labelled the worst goalkeeper in EPL history, which feels generous.
Pellegrini spent over the odds for eye-catching forwards, presumably at the insistence of West Ham's publicity-obsessed owners, without reinforcing a shambolic defence.
Only his obscene salary may earn him a stay of execution.
NO SALVATION FOR SILVA
But wages won't save Silva at Everton.
Patience has evaporated around Goodison Park. Silva's apparent inability to galvanise a number of starry names, despite spending heavily in the transfer market, may prove his undoing.
Their 18 attempts on goal against Norwich were like a toddler's 18 efforts to beat Daddy in the playground. Feeble.
Everton's attacking core has dissolved, with Theo Walcott and Gylfi Sigurdsson posing no attacking threat.
The last Everton manager to fix that particular problem was David Moyes, which poses an even bigger problem for Silva.
The Portuguese manager finds himself in the same position as Mauricio Pochettino last week. An obvious replacement is waiting in the wings, ready to finish off a dead man walking.
WILL NEIL NAIL IT?
• Who should be fired next: Emery
• Who will be fired next: Silva
• Who will be fired too late: Pellegrini


BOOKS
All Books
New Book
There be an issue, cap'n
My Books
Book Detail
This is a section: Home
Enter New Book
Submit
This is a section: Two
This is a section: Three


Change Log: 2.072.0
Download D 2.072.0
released Oct 30, 2016
Language Changes
- Using the result of a comma expression is deprecated.
- Implicit catch statement are deprecated.
- Implicit string concatenation is deprecated.
- Restrictions of postblits and destructors in union fields have been lifted.
- Align attribute can be used with CTFEable expression.
- scope is ignored for value parameters without indirections.
Compiler Changes
Library Changes
- TypeInfo.init has been deprecated.
- New druntime switch --DRT-oncycle allows specifying what to do on cycle detection in modules.
- Wrong @trusted attributes have been removed from etc.c.curl functions curl_easy_escape, curl_escape, curl_easy_unescape, and curl_unescape.
- Implementation of MurmurHash digest.
- Process creation in std.process was sped up on Posix.
- algorithm.iteration.cumulativeFold was added.
- std.range.padLeft and std.range.padRight were added.
- std.regex.regex now supports matching multiple patterns in one go.
- std.regex.splitter now supports keeping the pattern matches in the resulting range.
- findLocalMin was added to std.numeric.
- ptr property and public constructor were added to std.experimental.ndslice.slice.Slice.
- toHash method was added to std.experimental.ndslice.slice.Slice.
- slice, shape, ndarray, and other utilities were added to std.experimental.ndslice.slice.
- as lazy tensor was added to std.experimental.ndslice.slice.
- iotaSlice lazy tensor was added to std.experimental.ndslice.selection.
- indexSlice lazy tensor was added to std.experimental.ndslice.selection.
- repeatSlice lazy tensor was added to std.experimental.ndslice.selection.
- mapSlice lazy tensor was added to std.experimental.ndslice.selection.
- partial support for Math Index Order was added to std.experimental.ndslice.slice.Slice.
- std.algorithm.mutation.swapAt was exposed
- std.range.iota's .length` property is fixed to size_t instead of the type being iterated
- std.uni.isNumber and std.uni.isPunctuation now use a separate, optimized path for ASCII inputs.
- std.uni.isAlphaNum, which is analogous to std.ascii.isAlphaNum was added.
- std.regex.regex now supports inline comments with (?#...) syntax.
- std.regex had numerous optimization applied, compile-time std.regex.ctRegex should now be generally faster then the run-time version.
- std.range.primitives.moveAt accepts only size_t for its index arguments.
- std.algorithm.sorting.isStrictlyMonotonic which doesn't allow equal values was added.
- std.file.readLink and std.file.symlink have been rangified.
- All overloads of std.conv.toImpl has been made private. Please use std.conv.to instead.
- std.algorithm.searching.{min,max}Element for ranges have been added.
- std.typecons.Ternary was added to represent three valued logic.
- Added std.math.quantize, for rounding to the nearest multiple of some number.
- Three new traits were added to std.traits.
- std.range.generate fixed to be a proper range.
- std.numeric no longer uses enforce for verifying contract preconditions.
- Final was added to std.experimental.typecons
- std.traits.isInnerClass was added to identify nested classes with an accessible outer pointer
- std.conv.emplace no longer allows to emplace classes directly nested inside other classes without specifying a suitable outer pointer
- A switch for selecting the GC implementation at runtime was added.
- A GC implementation allowing manual memory management was added.
List of all bug fixes and enhancements in D 2.072.0.
Language Changes
- Using the result of a comma expression is deprecated.
Comma expressions have proven to be a frequent source of confusion, and bugs - see here for examples.
Using the result of a comma expression will now trigger a deprecation message.
Example:
void main () { // OK, result of increment not directly used for (int i, j; i != 3; i++, j++) {...} auto r1 = getRange!int, r2 = getRange!int; // OK for (; !r1.empty && !r2.empty; r1.popFront, r2.popFront) {...} // Deprecated - the loop condition is always used for (; !r1.empty, !r2.empty; r1.popFront, r2.popFront) {...} MyContainerClass mc; // OK - expression statement, result not used if (!mc) (mc = new MyContainerClass), mc.append(new Entry); int i; // Deprecated mc = (i++, new MyContainerClass); }
- Implicit catch statement are deprecated.
Implicit catch statement are catch statement without type specified. They default to catching Throwable, which is something that should always be explicit.
Example:
int[] arr = new int[](10); // This will throw a RangeError try { arr[42]++; } catch { writeln("An error was caught and ignored"); } // The previous line is equivalent to: // catch (Throwable) { writeln("An error was caught and ignored"); }
- Implicit string concatenation is deprecated.
Implicit concatenation of string literal is a very early feature that is now supplanted by the concatenation operator ('~'), the later being more explicit.
It could result in hard to spot bug, where one missed a comma in an array expression:
void foo () { string[] arr = [ "Hello", "buggy" "World" ]; assert(arr.length == 3); // Fail, the length of the array is 2 and the content is [ "Hello", "buggyWorld" ] }
- Restrictions of postblits and destructors in union fields have been lifted.
It is now allowed to have fields with postblits (this(this)), destructors (~this()), or invariants (invariant()) in unions. Actually destructing or blitting the correct field is the duty of the programmer.

Example:
version (D_LP64) enum n = 8; else enum n = 4; align (n) struct Data { align (n == 8 ? 2 : 1): ubyte[3] buffer; int flags; } version (D_LP64) static assert(Data.flags.offsetof == 4); else static assert(Data.flags.offsetof == 3);
- scope is now ignored for value parameters without indirections.
The scope storage class is now ignored for copied value parameters that don't have any indirections.
Example:
import std.traits; void valueParam(scope int param); static assert(ParameterStorageClassTuple!valueParam[0] == ParameterStorageClass.none); void scopeParam(scope int* param); static assert(ParameterStorageClassTuple!scopeParam[0] == ParameterStorageClass.scope_);
Compiler Changes
- Native TLS on OS X 64 bit.
The compiler has been updated to use native thread local storage (TLS) on OS X when compiling for 64 bit. This means that it's possible to to link with C/C++ TLS variables. This change is an ABI breaking change and requires recompiling libraries.
The minimum required version of running the compiler and any produced binary is now Mac OS X Lion (10.7).
Xcode 7.3 has a bug causing linker errors for some TLS variables. Xcode 7.3.1 fixes this bug. Any version older than 7.3 works as well.
- Analysis for aliases in imported modules is deferred.
Example:
module lib; template ExpensiveApiImpl(int ver) { ... void func() {} pragma(msg, "instantiated ExpensiveApiImpl ", ver); } alias api1 = ExpensiveApiImpl!(1); alias api2 = ExpensiveApiImpl!(2);
import lib; void main() { // OK, prints "instantiated ExpensiveApiImpl 1" api1.func(); // Don't print "instantiated ExpensiveApiImpl 2", because // the alias name 'api2' is not used. }
- Special keyword replaced by the source file's absolute file name.
The __FILE_FULL_PATH__ special keyword is replaced by the absolute path of the current source file by the compiler.
Example:
import std.stdio; import std.path; import std.file; void main() { writeln("The main source file lives here: ", __FILE_FULL_PATH__); writeln("The contents are:"); foreach(line; File(__FILE_FULL_PATH__, "r").byLine) { writeln(line); } writeln(); writeln("Other files in the same directory are:"); foreach(entry; dirEntries(__FILE_FULL_PATH__.dirName, SpanMode.shallow)) { writefln(" - %s", entry.name); } }
- Add -verrors=spec switch.
Shows errors from speculative compiles such as:
void foo(int i) { int p; bool b = __traits(compiles, { p = &i; }); }
that are normally not shown:
(spec:1) test.d(13): Error: cannot implicitly convert expression (& i) of type int* to int
The number after spec: is the nesting of the speculative compiles.
Library Changes
- TypeInfo.init has been
deprecated.
This is a step towards removal of TypeInfo.init, which is necessary to resolve a name clash with the type property init.
Use TypeInfo.initializer instead.
- New druntime switch --DRT-oncycle allows
specifying what to do on cycle detection in modules.
When module cycles are detected, the default behavior is to print the cycle, and abort execution. However, in many cases, the cycles are not harmful. With the new --DRT-oncycle switch, you can effect a different behavior when cycles are detected:
- --DRT-oncycle=abort
- This is the default behavior, and will abort, printing the cycle to stderr when the first cycle is detected
- --DRT-oncycle=print
- Print all cycles that are detected to stderr, but do not halt execution. Order of initialization is arbitrarily chosen based on the order the modules are in the binary
- --DRT-oncycle=ignore
- Do not print anything, and do not halt execution. Order of initialization is arbitrarily chosen based on the order the modules are in the binary
extern(C) __gshared string[] rt_options = [ "oncycle=ignore" ];
($P For more information, please consult the D language specification, section Overriding Cycle Detection Abort in chapter 4 and chapter 28.7 Configuring the Garbage Collector.) - Implementation of std.digest.murmurhash.
std.digest.murmurhash has been added. MurmurHash is a non-cryptographic hash function suitable for general hash-based lookup. It is optimized for x86 architectures.
// Computing the 32-bits hash value of an int array using the convenient digest template. import std.digest.murmurhash; ubyte[4] hashed = digest!MurmurHash3_32_opt32([1, 2, 3, 4]);
- Process creation in std.process was sped up on Posix.
Previously, Posix systems would attempt to close every file descriptor from 3 to the maximum file descriptor number if inheritFDs was not specified with spawnProcess, pipeProcess, etc. std.process now uses poll() to determine which descriptors need closing.
- algorithm.iteration.cumulativeFold was added.
std.algorithm.iteration.cumulativeFold returns the successive reduced values of an input range.
assert([1, 2, 3, 4, 5].cumulativeFold!((a, b) => a + b).array == [1, 3, 6, 10, 15]); assert([1, 2, 3].cumulativeFold!((a, b) => a + b)(100).array == [101, 103, 106]);
- std.range.padLeft and std.range.padRight
were added.
std.range.padLeft and std.range.padRight are functions for padding ranges to a specified length using the given element.
import std.range; import std.algorithm.comparison; assert([1, 2, 3, 4, 5].padLeft(0, 7).equal([0, 0, 1, 2, 3, 4, 5])); assert("Hello World!".padRight('!', 15).equal("Hello World!!!!"));
- std.regex.regex now supports matching multiple patterns in one go.
import std.regex; // multi-pattern regex auto multi = regex([`\d+,\d+`,`(a-z]+):(\d+)`]); auto m = "abc:43 12,34".matchAll(multi); assert(m.front.whichPattern == 2); assert(m.front[1] == "abc"); assert(m.front[2] == "43"); m.popFront(); assert(m.front.whichPattern == 1); assert(m.front[1] == "12");
- std.regex.splitter now supports keeping the
pattern matches in the resulting range.
import std.regex; import std.algorithm.comparison : equal; auto pattern = regex(`([\.,])`); assert("2003.04.05" .splitter!(No.keepSeparators)(pattern) .equal(["2003", "04", "05"])); assert("2003.04.05" .splitter!(Yes.keepSeparators)(pattern) .equal(["2003", ".", "04", ".", "05"]));
- findLocalMin was added to std.numeric.
std.numeric.findLocalMin finds a real minimum of a real function f(x) via bracketing.
import std.numeric, std.math; auto ret = findLocalMin((double x) => (x-4)^^2, -1e7, 1e7); assert(ret.x.approxEqual(4.0)); assert(ret.y.approxEqual(0.0));
- ptr property and public constructor were added to
std.experimental.ndslice.slice.Slice.
ptr property allows to access Slice's underlaying pointer or range. Please refer to std.experimental.ndslice.slice.Slice's internal binary epresentation before using the property. ptr property is used in Mir for sparse tensors. ndslice developer mirror in Mir will be removed as soon as LDC (LLVM D compiler) supports D version 2.072.
Public constructor for Slice was added to support std.experimental.ndslice integration with other languages and libraries such as Julia language and NumPy library.
std.experimental.ndslice.slice.Slice.toHash method was added.
import std.experimental.ndslice; // hash is the same for allocated data and generated data auto a = iotaSlice(3, 7); auto b = iotaSlice(3, 7).slice; assert(a.toHash == b.toHash);
- slice, shape, ndarray, and other utilities
were added to std.experimental.ndslice.slice.
These utility functions have been added to std.experimental.ndslice:
- std.experimental.ndslice.slice.makeNdarray,
- std.experimental.ndslice.slice.makeSlice,
- std.experimental.ndslice.slice.makeUninitializedSlice,
- std.experimental.ndslice.slice.ndarray,
- std.experimental.ndslice.slice.shape,
- std.experimental.ndslice.slice.slice,
- std.experimental.ndslice.slice.uninitializedSlice.
Example: Transposing common 2D array using ndslice
import std.experimental.ndslice; auto ar = [[0, 1, 2], [3, 4, 5]]; auto sh = ar.shape; // [2, 3] type of size_t[2] auto sl = slice!int(sh); // allocates slice with corresponding shape sl[] = ar; // fills sl with values from ar ar = sl.transposed.ndarray; // allocates common 2D array assert(ar == [[0, 3], [1, 4], [2, 5]]);
std.experimental.ndslice.slice.as lazy tensor was added.
import std.experimental.ndslice; auto matrix = slice!double([2, 2], 0); auto stringMatrixView = matrix.as!string; assert(stringMatrixView == [["0", "0"], ["0", "0"]]); matrix.diagonal[] = 1; assert(stringMatrixView == [["1", "0"], ["0", "1"]]);
- iotaSlice lazy tensor was added to std.experimental.ndslice.selection.
std.experimental.ndslice.selection.iotaSlice is the fastest possible Slice.
import std.experimental.ndslice; auto sl = iotaSlice([2, 3], 10); assert(sl.transposed == [[10, 13], [11, 14], [12, 15]]);
std.experimental.ndslice.selection.indexSlice lazy tensor was added.
import std.experimental.ndslice; auto slice = indexSlice(2, 3); assert(slice == [[[0, 0], [0, 1], [0, 2]], [[1, 0], [1, 1], [1, 2]]]);
std.experimental.ndslice.selection.repeatSlice lazy tensor was added.
import std.experimental.ndslice; auto sl = iotaSlice(3).repeatSlice(4); assert(sl == [[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]); auto m = 4.repeatSlice(2, 3); assert(m == [[4, 4, 4], [4, 4, 4]]);
std.experimental.ndslice.selection.mapSlice lazy tensor was added.
import std.experimental.ndslice; auto s = iotaSlice(2, 3).mapSlice!(a => a * a); assert(s == [[ 0, 1, 4], [ 9, 16, 25]]);
- partial support for Math Index Order was added to std.experimental.ndslice.slice.Slice.
import std.experimental.ndslice; auto sl = iotaSlice(3, 4); assert(sl[2, 3] == 11); // D & C index order assert(sl(3, 2) == 11); // Math & Fortran index order
- std.algorithm.mutation.swapAt was exposed
std.algorithm.mutation.swapAt allows to swap elements of a RandomAccessRange by their indices.
- std.range.iota's .length property is fixed
to size_t instead of the type being iterated
std.range.iota's .length property is now always returned as size_t. This means if you are on a 32-bit CPU and you are using iota to iterate 64-bit types, the length will be truncated to size_t. In non-release mode, you will get an exception if the length exceeds size_t.max in your call to iota.
- std.algorithm.searching.{min,max}Element
have been added.
std.algorithm.searching.minElement and std.algorithm.searching.maxElement are functions to search for the minimum and maximum element in a range. They support a custom map accessor.
import std.algorithm.searching; import std.range; import std.typecons; assert([3, 1, 4].minElement == 1); assert([4, 7, 5].enumerate.maxElement!`a.value` == tuple(1, 7));
- Added std.math.quantize.
std.math.quantize rounds to the nearest multiple of some number. Features:
- The rounding method can be specified using the rfunc parameter. By default, the current rounding mode will be used, which is typically "banker's rounding".
- Overloads are included for the common case of rounding to the Nth digit place in some base.
- If known at compile time, the base and exponent (digit place) can be supplied as template parameters for better performance.
import std.math; assert(12345.6789L.quantize(20.0L) == 12340.0L); assert(12345.6789L.quantize!(10, -2) == 12345.68L); assert(12345.6789L.quantize!(10, floor)(-2) == 12345.67L);
- Three new traits were added to std.traits.
std.traits.isType, std.traits.isFunction, and std.traits.isFinal were added to std.traits.
import std.traits; static assert(isType!int); struct S {} class C {} interface I {} static assert(isType!S); static assert(isType!C); static assert(isType!I);
import std.traits; void func(){} struct S { @property int prop(){ return 0; } } static assert(isFunction!func); static assert(isFunction!(S.prop)); // is a delegate type, not function type static assert(!isFunction!(typeof(&S.prop)));
import std.traits; class C { void nf() {} final void ff() {} } final class FC {} static assert(!isFinal!(C)); static assert( isFinal!(FC)); static assert(!isFinal!(C.nf)); static assert( isFinal!(C.ff));
- std.range.generate fixed to be a proper range.
std.range.generate was set up to return a different value on each call to front. In addition, popFront did nothing. This means that manipulation functions like std.range.drop did nothing. The new version uses a one-element cache to meet the expectations of the range definition. It preserves the ref-ness of the generator as well.
- Final was added to std.experimental.typecons.
std.experimental.typecons.Final can't be mutated directly. However references are typed with their original mutability. This is equivalent to final in Java or readonly in C#.
auto a = makeFinal([1, 2, 3]); assert(a[0] == 1); // a = [2, 3]; // Reassignment is illegal, a[0] = 42; // Elements or fields are still mutable. assert(a[0] == 42);
- std.traits.isInnerClass was added to identify
nested classes with an accessible outer pointer
Classes, that are nested inside other classes (and not inside functions) and that don't define any outer symbol, have an outer field which allows to get and even set the instance of the outer class they are nested in. std.traits.isInnerClass allows to identify them. The types satisfying isInnerClass are a subset of the ones satisfying isNested, as the latter includes classes and structures nested inside functions or that redefine outer.
class Outer { class Inner1 { } class Inner2 { int outer; // redefines outer, so the Outer instance is not accessible } static class Inner3 {} // static, thus not nested } static assert(isInnerClass!(Outer.Inner1)); static assert(!isInnerClass!(Outer.Inner2)); static assert(!isInnerClass!(Outer.Inner3));
- std.conv.emplace no longer allows to emplace
classes nested directly inside other classes without specifying a suitable outer
pointer
If a class is nested within another class (there's a new trait std.traits.isInnerClass to check for this condition), emplace requires now the outer class instance as additional mandatory parameter. Before this change, emplacing did not require this parameter and access to variables of the outer class resulted in segmentation faults.
class Outer { int x; class Inner { auto getX() { return x; } } } Outer outer = new Outer(); // auto inner = buf.emplace!(Outer.Inner)(); // this is no longer allowed auto inner = buf.emplace!(Outer.Inner)(outer); // use this instead auto x = inner.getX(); // this used to cause a segmentation fault; // now it works as expected
- A runtime switch for selecting
the GC implementation was added.
This allows to select a GC at program startup.
./my_d_exe --DRT-gcopt=gc:conservative # use conservative GC (default) ./my_d_exe --DRT-gcopt=help # list available GC options
See gc_config for more information about gcopt.
In a future release it should be possible to extend the list of GCs by linking with an alternative one.
- A manual GC was added.
Use the --DRT-gc=gc:manual option to select the manual GC.
This GC is a thin wrapper around malloc and free and does not collect any garbage. It only releases memory explicity freed using GC.free. Builtin language constructs such as arrays or delegates that might allocate GC memory can leak. It supersedes the gcstub implementation.
The manual GC is useful for applications that deterministically control memory. Use dmd's -vgc switch to keep track of hidden allocations that might leak.
It can also be helpful to find memory corruptions with tools like valgrind.
List of all bug fixes and enhancements in D 2.072.0:
DMD Compiler regressions
- Bugzilla 15726: [REG2.068.0] forward reference error for circular classes, RefCounted
- Bugzilla 15861: [REG 2.069] Wrong double-to-string conversion with -O
- Bugzilla 15925: -transition=[check]imports ignores import declaration from mixin templates
- Bugzilla 15992: [REG2.072a] ICE with field variable of instantiated struct
- Bugzilla 16080: [REG2.071.0] Internal error: backend\cgobj.c 3406 when building static library
- Bugzilla 16115: [REG2.067] Wrong code with comma operator
- Bugzilla 16233: [REG2.069] ICE on wrong code
- Bugzilla 16254: [REG 2.072-devel] wrong switch skips initialization error with mixed in case labels
- Bugzilla 16292: [REG2.069] bogus Error: goto skips declaration of variable
- Bugzilla 16536: DMD master does not build on OS X 10.11.6/Xcode 7.3.1
- Bugzilla 16570: [REG 2.072.0-b1] Enum member with interpreted initializer has type of initializer not enum
DMD Compiler bugs
- Bugzilla 1357: Cannot use FFFF and FFFE in Unicode escape sequences.
- Bugzilla 5305: Cannot take pointer to intrinsic function
- Bugzilla 10225: core.simd wrong codegen for XMM.STOUPS with __simd_sto
- Bugzilla 10591: Error: only one main allowed doesn't show location of conflicting main symbols
- Bugzilla 11047: UDA + getAttributes bypass purity/safety check
- Bugzilla 11169: __traits(isAbstractClass) prematurely sets a class to be abstract
- Bugzilla 11585: ICE(cgcod.c) with SIMD and -O
- Bugzilla 12357: Untyped string variable fails silently. No compiler warning given.
- Bugzilla 12527: Cannot make @system function/delegate alias in a @safe section
- Bugzilla 12537: Templatizing opEquals results in infinite recursion in the compiler
- Bugzilla 12558: try/catch allows implicit catching of Errors without specifying any Exception type
- Bugzilla 12822: Delegate .ptr assignment considered @safe
- Bugzilla 12939: More uniform error messages for not nothrow and not @safe functions
- Bugzilla 13116: Should not be able to return ref to 'this'
- Bugzilla 13147: Wrong codegen for thisptr in naked extern (C++) methods
- Bugzilla 13536: Union of delegates breaks @safety
- Bugzilla 13537: Unions may break immutability
- Bugzilla 13674: ICE(el.c) with simd multiplication of short8
- Bugzilla 13698: ICE(e2ir.c) on on simd call
- Bugzilla 13867: Overriding a method from an extern(C++) interface requires extern(C++) on the method definition
- Bugzilla 13975: ICE: dmd crash if -gc and enum member is immutable int
- Bugzilla 14162: Erratic inference of @safe for lambdas
- Bugzilla 14450: Incorrect overloading of immutable constructor for template struct
- Bugzilla 14496: void initialization of member with indirections must not be @safe
- Bugzilla 14504: Regex Optimizer doesn't merge equivalent threads.
- Bugzilla 14532: switch block allows creating uninitialized variables
- Bugzilla 15116: Unreasonable rejection of tuple field access via named mixin
- Bugzilla 15117: Unreasonable circular reference error via named mixin
- Bugzilla 15144: Bad operand size in asm { movdqa ... } produces bogus ubyte16 initializer error elsewhere.
- Bugzilla 15191: DIP25: Taking address of ref return is not type checked soundly
- Bugzilla 15192: DIP25: Nested ref returns are type checked unsoundly
- Bugzilla 15193: DIP25 (implementation): Lifetimes of temporaries tracked incorrectly
- Bugzilla 15258: Anonymous const union members don't allow for initialization
- Bugzilla 15306: Delegates with shared context can have unshared aliasing
- Bugzilla 15326: False positive for dangling else warning
- Bugzilla 15333: Assertion failed: (!fd->vthis->csym), function FuncDeclaration_toObjFile, file glue.c, line 1034.
- Bugzilla 15372: DMD emits wrong mangling for extern(C++) free function templates
- Bugzilla 15399: unaligned pointers are not @safe
- Bugzilla 15513: Memory Corruption with thread local objects
- Bugzilla 15573: -O -inline causes wrong code with idiv instruction
- Bugzilla 15607: [ICE] CTFE internal error: bad compare on accessing default-initialized static immutable array of array
- Bugzilla 15672: Casting from void[] to T[] is erroneously considered @safe
- Bugzilla 15680: TypeInfo broken for typeof(null)
- Bugzilla 15703: @safe code should not allow certain types of array casts
- Bugzilla 15704: @safe code should not allow copying to/from void[]
- Bugzilla 15757: D main is a nested function and cannot be accessed
- Bugzilla 15760: Segfault when compiling when using __gshared and selective import.
- Bugzilla 15762: Array casts involving const enums can be made @safe
- Bugzilla 15799: Misleading error message against the contract followed by semicolon in interface
- Bugzilla 15802: (SIGSEGV) CppMangleVisitor::source_name
- Bugzilla 15816: ICE void ddmd.dclass.__assert(int) with error: anonymous classes not allowed
- Bugzilla 15835: Segfault with typeid call from lazy argument
- Bugzilla 15855: "a[{for" causes dmd to segfault
- Bugzilla 15913: cannot initialize immutable fixed size array without similar const-code
- Bugzilla 15922: DMD segfault in functionParameters()
- Bugzilla 15934: Non-virtual super class member function call ignores 'this' type qualifier
- Bugzilla 15957: Disabled postblit + template mixin break opAssign with confusing error message
- Bugzilla 15974: Spurious error: argument to mixin must be a string, not (expression()) of type string
- Bugzilla 15999: Inline assembly incorrect sign extension instead of error
- Bugzilla 16035: Compiler crashes with inout, templates, and recursion
- Bugzilla 16094: error: overlapping slice assignment (CTFE)
- Bugzilla 16095: a delegate can mutate immutable data and break shared / non-shared enforcements
- Bugzilla 16096: Linking to static library: can't parse __DATA/__objc_imageinfo
- Bugzilla 16142: Adding a dtor / postblit (even disabled) forces opAssign
- Bugzilla 16193: opApply() doesn't heap allocate closure
- Bugzilla 16195: delete should be @system
- Bugzilla 16226: -dip25 doesn't work if the return type is not explicit
- Bugzilla 16228: Insufficient diagnostics for wrong application of DIP25
- Bugzilla 16229: [Win64] Crash when generating huge symbols
- Bugzilla 16340: case where version(unittest) results in an invalid warning about a dangling else
- Bugzilla 16365: cannot allow calling function pointer from delegate in @safe code
- Bugzilla 16439: Non-typesafe variadic functions can never be @safe
- Bugzilla 16466: Alignment of reals inside structs on 32 bit OSX should be 16, not 8
- Bugzilla 16525: C++ member variables have no mangling
- Bugzilla 16530: -O -cov interaction leads to wrong codegen
- Bugzilla 16534: RefRange should define opDollar if it defines length
DMD Compiler enhancements
- Bugzilla 2659: Remove the comma operator
- Bugzilla 3657: No lexical scope for local variables in debug info
- Bugzilla 3827: Warn against and then deprecate implicit concatenation of adjacent string literals
- Bugzilla 9766: align(n) with n compile-time constant
- Bugzilla 11886: "cannot access frame" error on lambda in lambda
- Bugzilla 13242: imported aliases should be analyzed lazily
- Bugzilla 14411: switch statement: docs/behavior differ
- Bugzilla 15323: Module.members and .deferred3 should use data structure with fast lookup
- Bugzilla 16077: [CodeView] no language information in MS-COFF debug information
- Bugzilla 16394: TypeInfo.init() for static arrays returns single element instead of whole array
- Bugzilla 16409: Add support for assign-style switches
Phobos regressions
- Bugzilla 15457: Symbol Undefined __lseeki64
- Bugzilla 15918: [2.070] Results from findSplit can no longer be assigned to each other
- Bugzilla 16179: [REG2.072] git HEAD: multiSort no longer callable with delegate with context
- Bugzilla 16291: phobosinit never gets called (EncodingScheme.create fails)
- Bugzilla 16544: Add File.reopen
- Bugzilla 16580: [REG 2.072.0-b1] spawnShell segfaults on macOS
- Bugzilla 16587: split("", "x") should be []
Phobos bugs
- Bugzilla 4509: XML parser in std.xml throws TagException if the attr value is put in apostrophes.
- Bugzilla 7972: std.file.read allocate a buffer the size of the file even when given a upper limit
- Bugzilla 7989: isInputRange and isForwardRange declare unused variables
- Bugzilla 11791: std.file.write failed to write huge files
- Bugzilla 12368: std.file.write conflicts with std.stdio.write
- Bugzilla 12897: std.json.toJSON doesn't translate unicode chars(>=0x80) to "\uXXXX"
- Bugzilla 13572: etc.c.zlib must be nothrow
- Bugzilla 14136: std.uni.utfMatcher breaks @safety
- Bugzilla 14137: std.socket.getAddressInfo breaks @safety
- Bugzilla 14485: .front of empty filtered zip range is accessible
- Bugzilla 14615: std.regex.replaceFirstInto throws exception when no match is found
- Bugzilla 14966: Comparing two std.xml.Document result in infinite recursion
- Bugzilla 15341: segfault with std.signals slots
- Bugzilla 15658: isFile isn't a template
- Bugzilla 15773: D's treatment of whitespace in character classes in free-form regexes is not the same as Perl's
- Bugzilla 15791: Cannot get a stored nested struct object from Variant
- Bugzilla 15823: opIndex doesn't work for const std.variant.Variant
- Bugzilla 15827: std.variant.Variant can not be initialized with some struct
- Bugzilla 15864: chmgen triggers exception in std.regex
- Bugzilla 15865: std.file.copy(from,to) deletes the file if from and to specify the same file
- Bugzilla 15872: [ndslice] indexing a slice with an array causes an error inside ndslice
- Bugzilla 15874: getSymbolsByUDA fails if struct has no UDAs
- Bugzilla 15884: Assigning char[] to std.json.JSONValue creates array, not string
- Bugzilla 15885: float serialized to JSON loses precision
- Bugzilla 15917: std.concurrency module destructor causes useless creation of new MessageBox
- Bugzilla 15919: [ndslice] Undetected spell miss in selection.reshape()
- Bugzilla 15920: std.traits.MemberFunctionsTuple gives a wrong result
- Bugzilla 15960: SetUnion should filter duplicates
- Bugzilla 15963: Hidden unresolved forward reference issue in std.uni
- Bugzilla 15964: The template constraints for std.uni.sicmp are too permissive
- Bugzilla 15973: nextPow2 and truncPow2 rely on processor specific behavior
- Bugzilla 15980: std.traits.Identity is undocumented but public
- Bugzilla 16010: [ndslice] byElement throw assert error
- Bugzilla 16026: std.math.frexp!float() wrong for very small subnormal values
- Bugzilla 16036: std.net.isemail - isEmail reurns "valid: false" for any email with EmailStatusCode.none (default)
- Bugzilla 16046: ScopedAllocator does not set prev, causing segfaults
- Bugzilla 16054: can break immutable with std.typecons.Rebindable
- Bugzilla 16070: std.meta.{ApplyLeft,ApplyRight} fail with mixed type/value arguments
- Bugzilla 16072: std.container.binaryheap should be extendable for arrays
- Bugzilla 16090: popFront generates out-of-bounds array index on corrupted utf-8 strings
- Bugzilla 16192: std.conv.toChars() opSlice wrong for radix other than 10
- Bugzilla 16219: std.experimental.allocator.makeArray does unnecessary allocations for ranges with length
- Bugzilla 16238: std.string.lastIndexOf fails compilation with -de
- Bugzilla 16241: std.xml mistakenly disallows "==" in comments but allows "--"
- Bugzilla 16331: std.container.array constructor shouldn't check result of emplacement
- Bugzilla 16351: Nonstandard output library causes no-argument writeln() to fail.
- Bugzilla 16372: Broken links in documentation
- Bugzilla 16383: Algebraic visit does not match handlers to const classes
- Bugzilla 16385: std.range: undefined behaviour when skipping over 0xff in string.popFront
- Bugzilla 16386: std.concurrency: destructors called twice on objects passed as Message
- Bugzilla 16387: getSymbolsByUDA works with structs but fails with classes
- Bugzilla 16413: multiSort doesn't work with @system comparison function
- Bugzilla 16420: Incorrect example in std.getopt docs
- Bugzilla 16501: packed ndslices does not compile
- Bugzilla 16503: [ndslice] prevents fastmath LDC attribute
- Bugzilla 16506: segfaults in std.experimental.allocator: FreeTree with GCAllocator or Mallocator
- Bugzilla 16507: std.experimental.allocator: FreeTree clears too eagerly
Phobos enhancements
- Bugzilla 2104: std.regex: escape function for regular expressions
- Bugzilla 7551: Regex parsing bug for right bracket in character class
- Bugzilla 10777: std.algorithm.multiSort to return a std.range.SortedRange
- Bugzilla 11229: std.string.toLower is slow
- Bugzilla 12227: Allow matching multiple patterns in one go with std.regex
- Bugzilla 12367: std.regex: Recognize (?# ... ) comment syntax
- Bugzilla 12379: Add toFile function which writes its first argument to a file
- Bugzilla 13409: std.range.padLeft/Right
- Bugzilla 13422: std.ascii has isAlphaNum but std.uni doesn't
- Bugzilla 13796: A simple "array head const" struct for Phobos
- Bugzilla 15229: BigInt(Range of chars) too
- Bugzilla 15797: Add Option to Not Drop Matches in std.regex.splitter
- Bugzilla 15800: std.conv.to!int does not work with ranges of any char type
- Bugzilla 15803: std.file should support sub-second file time precision on POSIX
- Bugzilla 15860: lockstep should support foreach_reverse
- Bugzilla 15991: std.datetime.StopWatch is not @nogc
- Bugzilla 15995: std.conv.text and friends can be made faster with std.array.appender
- Bugzilla 16308: [ndslice] should always has save primitive
- Bugzilla 16311: toHash for Slice is not defined
- Bugzilla 16315: [] ?= operations does not work with packed slices [ndslice]
- Bugzilla 16319: std.experimental.allocator.make subtly wrong with nested classes
- Bugzilla 16363: Cannot construct a random access range using frontTransversal
- Bugzilla 16364: getUDAs and hasUDA do not give consistent results
- Bugzilla 16443: std.getopt: segmentation fault with empty string option
Druntime regressions
- Bugzilla 1180: the GC failes to handle large allocation requests propperly
- Bugzilla 16211: [REG 2.058] Cyclic dependencies broken again
Druntime bugs
- Bugzilla 6333: The 'capacity' function is not pure/nothrow/@safe.
- Bugzilla 14601: pthread functions aren't marked @nogc
- Bugzilla 15111: hashOf fails for structs that have an alias this to a dynamic array
- Bugzilla 15838: Many Win32 API callback functions miss extern(Windows)
- Bugzilla 15958: Missing extern(Windows) of core.sys.windows functions
- Bugzilla 15959: core.sys.windows modules should be modified for x64
- Bugzilla 15976: explicite TLS initializes badly in DLLs if other threads exist
- Bugzilla 15987: core.sys.windows.msacm remains pseudo definitions
- Bugzilla 15997: Wrong constant value for ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED in winhttp
- Bugzilla 16007: Some Win32 API structs has wrong definitions
- Bugzilla 16049: core.sys.windows structs have wrong sizes and aligns
- Bugzilla 16594: module destructors called again if an exception got thrown earlier
Druntime enhancements
- Bugzilla 14117: core.atomic should be @safe
dlang.org bugs
- Bugzilla 15442: Eponymous template restrictions should be documented
- Bugzilla 16004: Document changes to protection attributes
- Bugzilla 16016: Remove std.concurrencybase from the docs
- Bugzilla 16040: Remove Dconf announcement
- Bugzilla 16114: [ddox] "Improve this page" links broken for package.d modules
- Bugzilla 16167: chm-nav.json generation is broken
- Bugzilla 16186: [Programming in D for C Programmers] Backticks should be escaped in explanation of raw string syntax
- Bugzilla 16231: Language specification: rename std.regexp -> std.regex
dlang.org enhancements
- Bugzilla 16141: Organizations page unreachable
- Bugzilla 16152: dpl-docs/ddox doesn't show documentation for eponymous template member
- Bugzilla 16464: opCast doco is insufficient
Installer bugs
- Bugzilla 16349: better curl retry for install.sh script


Katureebe advises Fresh Kid to balance talent and education
by Farooq KasuleThe young celebrity started singing as the judicial officers enjoyed his thrilling music despite being composed in Luganda.
Celebrity power on Friday swept judicial officers and support staff off their feet. This was when seven-year-old Patrick Senyonjo aka fresh kid performed at the judiciary end of year party.
When the master of ceremony mentioned the name fresh kid, most of the judicial officers and their support staff who had gathered at the high court gardens in Kampala for their end of year party stood up.
Some of them pulled out their smartphones and started filming as Fresh Kid advanced to the stage.
The young celebrity started singing as the judicial officers enjoyed his thrilling music despite being composed in Luganda.
Chief Justice Bart Katureebe, Deputy Chief Justice Alfonse Owiny-Dollo, retiring Principal Judge Dr Yorokamu Bamwiine, Justice and Constitutional minister Maj Gen. (rtd) Kahinda Otafiire, Secretary to judiciary Pius Bigirimana and Out-going Chief Registrar Esta Nambayo were visibly amused with Fresh Kid’s music.
Bamwine was also seen dancing as the young star entertained the judicial officers.
They gave him thunderous claps and later took turns to shake his hand.
A number of judicial officers were seen taking selfies with the young teenager.
Katureebe lauded Fresh Kid and implored him to balance talent with education in order to be successful.
Bigirimana revealed that he got to know Fresh kid last year when he was a permanent secretary in the ministry of gender and vowed to help him realise the dream of becoming a permanent secretary.
“When I met him at the Ministry of Gender, I found that he was being cheated by his manager. I decided to divide the proceeds from his shows. I ordered that three accounts be opened for his personal saving, mother and father. I told his parents that his money should be kept on his account until he reaches maturity age and put it into proper use,” Bigirimana said.
Civil Division deputy registrar Sarah Langa said, “When you are the master of ceremony, you cannot miss a selfie with this kind of celeb.”
At the function, the judiciary bid farewell to over 14 judicial officers who have clocked retirement age including the outgoing principal judge Dr Yorokamu Bamwine.
Others are Supreme Court justices Jotham Tumwesigye, Augustine Nshimye, Eldad Mwangusya, high court judges Margaret Oumo-Oguli, Moses Mukiibi, Billy Kainamura, and Rugadya Atwooki.
Others include registrars Thaddeus Opefeni, Joy Kabagye and Magistrates Francis Nkurunziza, Simon Peter Odo and Mukasa Namagembe.
Each of them was recognised for their dedicated service to the judiciary


Class: GameMachine::sVect
- Inherits:
-
Object
- Object
- GameMachine::sVect
- Defined in:
- lib/game_machine/vector.rb
Instance Attribute Summary (collapse)
-
- (Object)
Returns the value of attribute.

Instance Attribute Details
- (Object)
Returns the value of attribute
4 5 6 |
# File 'lib/game_machine/vector.rb', line 4
def
@
end
|
Instance Method Details
- (Object) ==( )
12 13 14 15 16 |
# File 'lib/game_machine/vector.rb', line 12
= z
end
def==(v)
@x == v.x && @y = v
|
- (Object) distance( )
39 40 41 |
# File 'lib/game_machine/vector.rb', line 39
dy = @y - v.y
dz = @z - v.z
(dx * dx + d
|
- (Object) distance_squared(x)
32 33 34 35 36 37 38 39 |
# File 'lib/game_machine/vector.rb', line 32
ew_z)
@x = new_x
@y = new_y
@z = new_z
end
def distance_squared(v)
dx = @x -
|
- (Object) inspect
51 |
# File 'lib/game_machine/vector.rb', line 51 y + change_amount*vector.y |
- (Object) set(.0 , @y, = 0.0)
26 27 28 29 30 31 |
# File 'lib/game_machine/vector.rb', line 26
@x = 0.0
@y = 0.0
@z = 0.0
end
def set(new_x,n
|
- (Object) zero
20 21 22 23 |
# File 'lib/game_machine/vector.rb', line 20
@y == 0 && z == 0
end
def zer
|
- (Boolean) zero?
16 17 18 19 20 |
# File 'lib/game_machine/vector.rb', line 16
@z = v.z
end
def zero?
@x =
|


Array and Hash in Ruby helps programmers to efficiently manage data. Array and Hash both are able to store multiple types of data inluding boolean (t/f), numbers and text. The main difference between Array [ ] and Hash { } are the symbols to create and its flexibility. Hash { } needs a key and a value. Examples: array = [true, 1, 2.0, "Hello", "bye"] array.each { |x| puts "#{x}" } hash = {tiger: "land", whale: "sea", eagle: "air"} hash.each { |x, y| puts "#{x}: #{y}" } As you can see .each on examples, there are numerous Enumerable classes that can be connected to array and hash. These enumerable classes such as .length, .size, .upcase , ETC. allow user to manipulate the output results. I found this website to great resource to see different classes Link: Dev Docs


Things I Make Happen
I create Ideas for Websites and Web Apps and build Prototypes
I Design Websites, Create Mockups and Wireframes for Reference
This is where the magic happens. I write the code to Match the Design.
The Skills Which Create Magic
I am Currently Accepting Projects and I look Forward to Working wIth You.
You Can Directly Contact Me Via Email
Created By Me With Love


I am currently a Final-year student at National Institute of Technology, Delhi.
My Interests include Object Detection, Computer Vision, Machine Learning, Databases, Frontend Development
and
Robotics.
Ship and Aircraft Detection in SAR and Optical Satellite Images using Deep
Learning Techniques.
Implemented YOLOV3, YOLOV5, Faster-RCNN and SSD MobileNet for Object Detection.
May 2020 - July 2020
Electricity Theft Detection using Wide & Deep CNNs to secure Smart Grids.
Guide: Dr. Manoj Kumawat (Assistant Professor, Department of Electrical & Electronics Engineering)
June 2020 - Present
Design and development of Automatic Positioning System for the movement of transducers in Acoustic Tank
Guide: Dr. R.P. Singh (Scientist - F, Acoustic Sensors Division)
May 2019 - July 2019
Design of Bidirectional visitor counter using 8051 Microcontroller
December 2019
GPA: 7.42
Percentage: 90
CGPA: 10
I enjoy my outdoor time playing Badminton and spending time with friends.
Indoors, I follow a number of sci-fi and fantasy genre movies and television shows, and I spend a large amount of my free time exploring the latest technolgical advancements in the the world.
I also like reading books. My favorite Genres are Self Help, Biographies, Mystery and Science Fiction.


---
layout: page
status: publish
published: true
title: ".NET"
author:
display_name: Tomas Restrepo
login: tomasr
email<EMAIL_ADDRESS>url: http://winterdom.com/
author_login: tomasr
author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/
wordpress_id: 1088
wordpress_url: http://winterdom.com/?page_id=1088
date: '2009-04-28 02:10:48 +0000'
date_gmt: '2009-04-28 02:10:48 +0000'
categories:
- Uncategorized
tags: []
comments:
- id: 1511
author: Memory-mapped file | Format Laboratory
author_email: ''
author_url: http://www.formatlaboratory.com/?p=46
date: '2010-06-12 10:04:11 +0000'
date_gmt: '2010-06-12 10:04:11 +0000'
content: "[...] ^ DotNet [...]"
---
Here are some of the things I've created and some articles for the .NET platform.
- FileMap
-
This is a simple library that wraps the Win32 Memory Mapped File services.
Update: This is an old snapshot of the code. For the most recent code, get it directly from the GitHub repository.
- FileMap patch to suport dynamic paging
-
This is a patch to the FileMap library provided by Steve Simpson to support Dynamic paging of the view stream
so that as you read forward and backwards it automatically maps/unmaps views of the file as needed.
- ProjectCleaner
-
This is a simple VS.NET AddIn that provides commands to clean a C# or VB.NET
project's outputs.
- Errata for my MSDN Article on MC++
-
This is a list of issues and errors I've found related to my Managed C++
article on MSDN Magazine.
- MCppRemoting.zip
-
A remoting sample in MC++ that implements a well known singleton type.
- Additional NAnt Tasks
-
A few extra NAnt tasks you can use in your buildscripts.
- Managed Custom COM+ Surrogate
-
A simple COM+ Example showing how to call CoRegisterSurrogateEx().
- C++/CLI with WSE 3.0 sample
-
A sample server and client built in C++/CLI showing the use of WSE 3.0.
- ColorView
-
A sample Color Picker utility.
- VSColorsToSql
-
A simple command line utility to copy your Visual Studio 2005 color scheme over to SQL Server Management Studio.


Grid DnD - Rearrange Rows and Columns
Notes:
Swipe or click on column header to select columns to dnd
Swipe or click on row to select a rows to dnd


About
Data science is a long-term investment that requires strong leadership, quality hiring, and
tailored development. Whether you’re just starting out or have a team in place already,
deficiencies in any of these areas will seriously impede your business growth.
d2l is a team of data professionals offering hands-on guidance for tackling your next data
science challenge. Consulting is successful when there is a swift data discovery period, flexible
scope, and clear success metrics. We value the consistent mentorship and training that is
required to optimize the return on your investment. We’re building partnerships, not short-term
revenue.
Services
Why do you need consulting? ‘KUBA’:
- Knowledge – lack of internal experience to tackle the next big challenge
- Urgency – hiring and on-ramping takes time, you can’t “hit the ground running”
- Budget – have money allocated and can pay a premium
- Availability – competition and location has you at a disadvantage for attracting top talent for full time positions
Data Discovery
- Effective data science starts with a deep understanding of the data – including its shortcomings. We approach data discovery with a surgical precision to quickly extract key insights.
Strategy
- A pragmatic and focused strategy is vital to making data-driven decisions, as well as the flexibility to adapt to an ever-changing competitive climate. We collect and synthesize stakeholder requirements and KPIs to ensure concise strategy execution.
Development
- Development is a known point of divergence between expectation and implementation. We foster accountability and consistent communication from our developers to safeguard against all too common delays and revisions.
Training
- We want to cultivate evolving partnerships, not dependencies. We end engagements with comprehensive training to leave your team self-sufficient, and ready to take on the next challenge.
Areas of Expertise
Business Intelligence
- Industry experts on reporting tools to match your specific needs. Infrastructure and tools must work in harmony to keep pace with the competition
Modeling
- The earlier you know the predictive capability of your data the better. Experience matters in building solutions, not just identifying setbacks
Inference
- Requires the proper tool to make accurate data-driven decisions. Understanding your assumptions and drawing the correct conclusions is critical in measurement solutions
Project Management
- Data science projects require multiple teams and touch points. The necessary flexibility in scope requires an effective communicator and negotiator
Industries
- adtech, automotive, cannabis, cpg, energy, financial services, media & entertainment, retail, transportation, real estate


Save saltstack console colored output to file
Not an expert with Salt yet, but wow, saltstack is such a great tool! Like colored output? What about saving colors to your log files? Chrome extension inside (help needed!)
Hey, before we begin, I started playing around with colors in a terminal and tough it could be cool to have a chrome extension for this. Let’s create ANSI colors chrome extension together!
Alright let’s begin
Saltstack’s output has colors for the great good, green when result is pass, pink when it’s modified and red when it fails.
Easy to see when something goes wrong. Now when you start running commands on multiple servers, salt is very handy, but what if you’d like to share the output with a teammate? Go for it, copy paste, plain white/black text or take a screenshot of your terminal? Continue reading for a solution ;)
Console colors
See Bash Prompt HOWTO: Colors for reference ;)
Here are some env variable colors
Values are ANSI Escape Codes and the environment variables above comes by default with Oh-my-zsh :)
Colors and files
Now, depending on your shell, writing this to a shell with >
should keep these ANSI characters, so when you cat
the file again, you should see it with colors.
In my case, colors are kept (using Oh-my-zsh with iterm2 terminal emulator) and I’m happy with it, but sometimes, it’s not the case depending on the command or the shell being used.
Read colored output from file
Depending on your shell environment, less
command may not need additional parameters, but if you try to pipe a colored file to less
and don’t get any colors, try with -r
parameter:
Thanks to this answer on stackoverflow and its comments.
keep salt colored output
Haven’t talked much about salt in current post so lets begin. Writing salt output to a file doesn’t keep ANSI colors. Luckily for us, salt command has a --force-color
parameter added in salt issue #4121.
Solution to keep salt output looks like this:
Awesome, salt colors!
What about clear text (no color)?
I you want to remove colors from output, there are a few solutions available, here’s a question asking for a regex to remove ANSI Escape codes. My favorite answer is ansi-strip-cli npm module
Usage:
No more colors :)
Otherwise, you can strip output with perl -pe 's/\x1b\[[0-9;]*[mG]//g'
which is perfect if you don’t want node.
salt solution
So with salt, I managed to get both output using the following:
Prefer not to bloat your system with npm?
Now you can enjoy salt output in both ways :)
What’s the tee
command?
Thanks to tldr pages
Some random stuff because why not
Cool, you’ve reached this far, get lolcat for the lolz


This is a parallaxed section with a background image
This is a parallaxed section with a background image
This is a parallaxed section with a background image
This is a parallaxed section with a background image
This is a parallaxed section with a background image
This is a parallaxed section with a background image
This is a parallaxed section with a background image
This is a parallaxed section with a tiled image
This is a parallaxed section with a tiled image
This is a parallaxed section with a tiled image
This is a parallaxed section with a tiled image
This is a parallaxed section with a tiled image
This is a parallaxed section with a tiled image
This is a parallaxed section with a tiled image


Container size:
Big
Medium
Small
Image:
Monkey
PC
100x400
Selection (width × height):
×
State JSON:
{{ state | json }}


Greetings! My name is Ted and I am a Interactive Developer in the GSW NY, an ad agency in the pharmacuetical space. Apart building federally regulated web sites I get to craft interactive user experiences, like hologram animations. When I step away from the screen I enjoy golfing, reading, and trekking through the woods to find my Titlest.
A live updating feed of user posts built with a custom framework. Before appearing on the animated displays and live feed, posts must first be approved via admin dashboard.
Parkinson's Disease affects up to 1 million people in the US. Small pharma company, Adamas, launched their drug and I led the team that built their suite of websites.
Transways, a local leader in intermodal trucking and warehousing needed a website to launch their brand into the current age. I made a custom design built on Wordpress to deliver a brand identity that will not age quickly.
A dynamic web app that pulls live weather data from the ballpark locations of upcoming MLB games. The games that are in danger of precipitation, and by extension weather delay, are highlighted.
At MLBAM the NHL Gamenight Loggers have an overwhelming amount of things to keep track of over a three hour broadcast. I built the Logger Tools to alleviate the mental stress put on a logger while using up a minimal amount of screen real estate.


Tripped over 1000 mile mark on the bike since I started tracking last September. Sweet!
5/26/2011, 9:18:00 AM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Tripped over 1000 mile mark on the bike since I started tracking last September. Sweet!
5/26/2011, 9:18:00 AM
Favs: 0
Retweets: 0
link


👨💻 About me
I am a contract ruby developer based in Cambridge UK.
Contract Ruby Developer
👨💻 About me
I am a contract ruby developer based in Cambridge UK.
📚 Book Club
I run an online non-fiction book club, if you like chatting about social issues with friendly people, you can join us via Zoom on the last sunday of every month. Check out what we're reading this month on Meetup...
Better Book Club on Meetup.com📥 Get in touch
I'm giving up social media for 2021, the best way to reach me is either email at , or, if you have my phone number you can message me with Signal.
🎸 My Music
Sometimes I make music, check it out on Spotify Listen on Spotify
Deep Q-Learning for Atari Games
01 Jan 2019
We need to go deeper: Deep Q Networks
01 Nov 2018
A Primer on Reinforcement Learning: Q-Learning
01 Nov 2018
Why accuracy isn't accurate
05 Dec 2017
Understanding Convolutional Neural Networks
10 Nov 2017
Made with Prosecco, a Jekyll theme I made while drinking Prosecco.


Pad an image along its four boundaries. Similar to Matlab's padarray, with the following differences: (1) limited to padding along height and width (2) input format allows for separate padding along each dimension (3) padding values may be negative, in which case performs *cropping* (4) optimized (speedup can be significant, esp. for small arrays) The amount of padding along each of the four boundaries (referred to as T/B/L/R) is determined by the parameter "pad" as follows: if(numel(pad)==1): T=B=L=R=pad if(numel(pad)==2): T=B=pad(1), L=R=pad(2) if(numel(pad)==4): T=pad(1), B=pad(2), L=pad(3), R=pad(4) USAGE J = imPad( I, pad, type ) INPUTS I - [hxwxk] input image (single, double or uint8 array) pad - pad or crop amount: 1, 2, or 4 element vector (see above) type - pad value or 'replicate', 'symmetric', 'circular' OUTPUTS J - [T+h+B x L+w+R x k] padded image EXAMPLE I=imread('peppers.png'); pad=[10 20]; type=50; tic, J1=imPad(I,pad,type); toc tic, J2=padarray(I,pad,type,'both'); toc figure(1); im(J1); isequal(J1,J2) See also padarray Piotr's Computer Vision Matlab Toolbox Version 3.00 Copyright 2014 Piotr Dollar. [pdollar-at-gmail.com] Licensed under the Simplified BSD License [see external/bsd.txt]


|
MatrixEngine
|
2D postion ADT More...
#include <pos.h>
Public Member Functions | |
| xy (int p_x, int p_y) | |
| Constructor of xy. More... | |
| int | get_x () |
| Returns x. More... | |
| int | get_y () |
| Returns y. More... | |
| void | set_x (int u_x) |
| Sets x. More... | |
| void | set_y (int u_y) |
| Sets y. More... | |
Public Attributes | |
| int | x |
| int | y |
2D postion ADT
This class is a two dimensional ADT
|
inline |
Constructor of xy.
This is the constructor of the two dimensional ADT
|
inline |
Returns x.
This function return the x value
|
inline |
Returns y.
This function return the y value
|
inline |
Sets x.
This function sets the x value
|
inline |
Sets y.
This function sets the y value


Logout
Request Submission
Amount ($)
Description
Submit Request
Pending Requests
Amount
Description
Date Submitted
Manager Tools
Resolved Requests
Amount
Manager Message
Date Submitted
Approved


Respecting user privacy is important to Dropular.net. Read this to learn about personal information that Dropular.net collects and how it may be used.
The e-mail address you register with Dropular.net and the logs of your activity is used to calculate personalized recommendations as part of our service. We use this information in aggregate to generate statistics and other usage information. We share this information anonymously with you, other end users, and other third parties.
Our service may contain links to other websites and software. We are not responsible for the privacy practices or the content of these websites or software. Please visit the privacy policies of these third party sites in order to understand their privacy and information collection practices.
We reserve the right to disclose your personally identifiable information when we believe in good faith that an applicable law, regulation, or legal process requires it, or when we believe disclosure is necessary to protect or enforce our rights or the rights of another user.
Cookies are small text files stored by your browser on your computer when you visit a website. We use cookies to improve our website and make it easier to use. Cookies permit us to recognize you and avoid repetitive requests for the same information. Most browsers will accept cookies until you change your browser settings to refuse them. You may change your browser's settings to refuse our cookies.


How to Contribute
Fedora Silverblue is an open community seeking contributors from everywhere, and of every type. In addition to many core projects needing code in various languages, we also need:
- help writing documentation
- expert users to answer questions from less experienced users
- testers who can try out new releases and features
If you are a programmer, please check out rpm-ostree and Flatpak and the many related projects on GitHub for places to contribute. We accept pull requests and do not require a CLA.
If you are a designer, a storyteller who is interested in tech, a technical writer, or otherwise interested in contributing to the website or documentation, please check out the GitHub repositories for the website and documentation. If you're not comfortable with GitHub, you can always create a topic in the community forums.
If you find a problem or want to suggest a feature, you can use the issue tracker.
Meet the Team
We've canceled IRC meetings in favor of discussiong things timezone-independently on the forums.
Outside of the forums, you can always come by and chat about Silverblue in the #silverblue IRC channel on Libera.Chat or in #silverblue:fedoraproject.org on Matrix.
You can best discuss Silverblue in our community.
Silverblue is a work in progress. Join now and help us shape its future!


How to Configure MIP With Active Directory
One of the most common configurations changes for WMOS is to have users authenticate against Active Directory instead of the user store in the WMOS database (which is usually the MDA schema in the WMOS database). This allows for an easier and more granular control of the user authentication, and can sometimes help the project meet coporate requirements.
ℹ Note: The AD configuration can also be done during the install, however it’s advisable to do it after the application has been installed and confirmed to be working.
Understanding MIP Authentication Source Types
MIP has 3 different Authentication Source types (msf.authentication.option
). It’s important that we understand the differences in order to pick the one that will work the best for our use case.
Database
Users are authenticated against the WMOS database. All user authentication changes are managed via MDA.
LDAP
Users exist in the WMOS database, however authentication is done via LDAP to the Active Directory server.
LDAP-DB
Users exist in the WMOS database and authentication is done via LDAP to the Active Directory server. However, some users can alternatively be configured to authenticate against the WMOS database.
This can be very handy in situations where:
- You are doing a proof of concept for using AD in WMOS
- You are doing the initial testing for AD authentication in WMOS
- If RF/Vocollect users cannot meet the corporate password policy (like having special characters in the password)
The authentication is controlled via the entry ISPASSWORDMANAGEDINTERNALLY
in the WMOS database under the UCL_USER
table. The first time a user tries to authenticate MIP will try the AD, and if it fails MIP will try authenticating the user against the WMOS DB. If at any point the authentication against the AD is successful, MIP will change ISPASSWORDMANAGEDINTERNALLY
to ‘0’ and the user will no longer be able to authenticate against the WMOS database.
Example cases:
Before we Get Started
We will need a few things before we can get started.
SSL Certificate for the AD
I strongly advise you to connect to your active directory via SSL. Without SSL all authentication traffic between MIP and the AD server can be snooped by anyone in the network.
Your infrastructure team should be able to provide you with a certificate file that can be used to connect to the AD. Make sure to ask for a non-binary file in the .cer
format.
The FQDN or IP address for the AD(s) server
This will be either the Fully Qualified Name (like ‘myadserver.mycompany.com') or an IP address. It’s a good idea to have a secondary AD server as it can help in the event that the primary AD server goes down (so your users can continue to login).
Related config:
ldap.primary.host
- FQDN or IP for the primary AD serverldap.primary.port
- Port for the primary AD server (TCP/UDP: 389 or LDAPS: 636)ldap.secondary.host
- FQDN or IP for the secondary AD serverldap.secondary.port
- Port for the secondary AD server(TCP/UDP: 389 or LDAPS: 636)
AD structure information
We need to know how to search for users in your company’s Active Directory. Your system administrator should be able to help with this info.
| Field | Description | Examples |
|---|---|---|
ldap.base.ctx.dn |
Base context DN to establish connection to the LDAP | DC=mycompany,DC=com or OU=Warehouse1,DC=mycompany,DC=com |
ldap.user.id.attribute |
Attribute ID to use to get the username | sAMAccountName |
ldap.user.ctx.dn |
DN to look for users | DC=mycompany,DC=com or CN=Users,OU=Warehouse1,DC=mycompany,DC=com |
ldap.user.filter |
Filter to get the user | (&(sAMAccountName=%v)(objectcategory=user)) |
ldap.group.id.attribute |
Attribute ID to get Group Name | cn |
ldap.group.ctx.dn |
DN to look for groups in LDAP | |
ldap.group.filter |
Filter to query groups | (&(cn=%v)(objectcategory=group)) |
ldap.user.group.attribute.id |
Attribute ID in user object that give information about user groups | memberOf |
ldap.group.attribute.isDN |
Is the attibute id given above is itself a DN | true |
ldap.group.nesting.level |
How deep to traverse in the tree | 2 |
ldap.user.displayname.attribute |
Attribute id in user object, which gives the full name of the user | (&(sAMAccountName=%v)(objectcategory=user)) |
ldap.user.dn.attribute |
Attribute id in user object | distinguishedName |
ldap.group.dn.attribute |
Attribute id in group object | distinguishedName |
ldap.search.scope |
Search type in LDAP | SUBTREE_SCOPE |
AD username and credential
We will also need an AD user (bind DN) that has access to active directory. I would advised having separate users for your test environment and production. If this account gets locked users will not be able to login to WMOS.
Related config:
ldap.bind.dn
- Username for bind DNldap.bind.password
- Password for bind DN
User in the WMOS Database
Remember I mentioned before that the users need to exist in the WMOS database? So make sure that we have at least one user in the database that we can test with. The user ID should be exactly the same as the username in AD.
Identify the Application Paths
There are two paths that we should know before we continue: the application root folder (MIP_ROOT
or mip_root
) and the application profile folder (mip_profile
or MIP_PROFILE
). They will be the base paths of our configuration.
My examples will use the following paths:
- MIP_ROOT -
/opt/manhattan/apps/mip
- MIP_PROFILE -
/opt/manhattan/apps/mip/profile-root/mip_dev
Backing up Files
I advise making a backup of all the files that we are going to modify. This way you can revert the changes should something go wrong.
Make a backup of the following files:
| File | Description |
|---|---|
${MIP_ROOT}/distribution/mip.properties |
Main LDAP configuration |
${MIP_ROOT}/distribution/tomcat/bin/catalina.sh |
JAVA Options |
${MIP_PROFILE}/conf/msf-jaas-config.xml |
Runtime configuration |
${MIP_ROOT}/distribution/resources/templates/mip/mip-trustcerts.jks |
* Certificate truststore |
* The truststore is where we need to save the certificate that will be used to connect to the AD. Manhattan support will sometimes advised you to create a new one, however, I would advise you to use the existing one to keep uniformity and predictability between the environments.
Files to Delete
The msf-jaas-config.xml
is a runtime file that would usually be recreated with an install command (more about it later). However, it so happens that it does not. So we need to delete the file to force it to be recreated (make sure you backed it up in the previous step).
| File | Description |
|---|---|
${MIP_PROFILE}/conf/msf-jaas-config.xml |
Runtime configuration |
Getting Started
We can now start to make all the required changes for AD to work. Most of these changes can be made with the application running. I will let you know when to stop the application.
Importing the Certificate
Upload the certificate to the server. I advise setting up a folder that will be the same throughout all the environments (for example /opt/manhattan/certificates
). This will keep environments consistent and allow you to easily automate tasks in the future.
Once the certificate is uploaded we can import it to the truststore. The command format is:
$ keytool -import -trustcacerts -noprompt -file \
"[certificate_path]/[certificate_name].cer" -alias "[alias for my certificate]" \
-keystore "${MIP_ROOT}/distribution/resources/templates/mip/mip-trustcerts.jks" \
-storepass "[truststore_password]"
Example:
$ keytool -import -trustcacerts -noprompt -file \
"/opt/manhattan/certificates/my_certificate.cer" -alias "AD-CERT" \
-keystore "/opt/manhattan/apps/mip/distribution/resources/templates/mip/mip-trustcerts.jks" \
-storepass "idpkeys"
⚠ WARNING: I’m using the default password above. I strongly advise that you change it to something else (you will need another set of commands for that).
Configuring MIP to use the truststore
Once the truststore has the certificate we can configure MIP to use it at run time. This is usually done with the Java option Djavax.net.ssl.trustStore
.
Edit ${MIP_ROOT}/distribution/tomcat/bin/catalina.sh
and look for the line that has Dorg.apache.catalina.security.SecurityListener
. Add the lines below right after (note the path and the password. Set it to reflect your environment).
# Added for LDAPS
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/opt/manhattan/apps/mip/profile-root/mip_dev/conf/mip-trustcerts.jks -Djavax.net.ssl.trustStorePassword=idpkeys"
Configuring MIP
Now let’s edit ${MIP_ROOT}/distribution/mip.properties
with the values we gathered before. I have a configuration below that you can use as example for your configuration.
# ######################################################## #
# What is the authentication option for MSF? #
# Possible values are ldap/db/ldap-db/external #
# ######################################################## #
msf.authentication.option=ldap-db
# ############### #
# LDAP properties #
# ############### #
ldap.primary.host=ad_server1.mydomain.com
ldap.primary.port=636
# if we need a active/passive ldap support, fill in values
ldap.secondary.host=ad_server2.mydomain.com
ldap.secondary.port=636
# Username and password to connect to the LDAP server
ldap.bind.dn=domain\\bind_user
ldap.bind.password=[bind password]
# Base context DN to establish connection to the LDAP
ldap.base.ctx.dn=DC=mycompany,DC=com
# Attribute ID to use to get the username
ldap.user.id.attribute=sAMAccountName
# DN to look for users
ldap.user.ctx.dn=DC=mycompany,DC=com
# Filter to get the user
ldap.user.filter=(&(sAMAccountName=%v)(objectcategory=user))
# Attribute ID to get Group Name
ldap.group.id.attribute=cn
# DN to look for groups in LDAP
ldap.group.ctx.dn=
# Filter to query groups
ldap.group.filter=(&(cn=%v)(objectcategory=group))
# Attribute ID in user object that give information about user groups
ldap.user.group.attribute.id=memberOf
# Is the attibute id given above is itself a DN. If yes, the code will query that DN to get the group informaiton
# If not, the attribute value is itself used as a grop name
ldap.group.attribute.isDN=true
# We support multiple level of groups .Specifies how deep to traverse in the tree.
ldap.group.nesting.level=2
# Attribute id in user object, which gives the full name of the user
ldap.user.displayname.attribute=(&(sAMAccountName=%v)(objectcategory=user))
# Attribute id in user object , which give the DN of the user.
ldap.user.dn.attribute=distinguishedName
# Attribute id in group object , which give the DN of the user.
ldap.group.dn.attribute=distinguishedName
# Search type in LDAP
ldap.search.scope=SUBTREE_SCOPE
# Search timeout
ldap.search.timeout=1000
ldap.context.factory=com.sun.jndi.ldap.LdapCtxFactory
# Enable connection pool for LDAP
ldap.connect.pool=true
# If connection pool is enabled
ldap.connect.pool.maxsize=20
ldap.connect.pool.prefsize=10
ldap.connect.pool.timeout=300000
# LDAP protocol set to ldap or ldaps, if using ldaps you must configure or add a java truststore with ldaps server ssl public certificates
ldap.protocol=ldaps
Installing the Changes
We now need to stop MIP and install the new files. You don’t have to stop other apps (users currently logged in will not be affected, only new users trying to login).
a. Source the MIP runtime variables
$ cd ${MIP_ROOT}/distribution
$ . ./setenv.sh
b. Stop MIP
$ ./scpp-ant.sh stop
c. Run the install command
$ ./scpp-ant.sh install
d. Start MIP
$ ./scpp-ant.sh start
Try to login to WMOS (or any other app) with the AD user that you had configured in both the WMOS database as well as in AD. You can use the MIP logs (${MIP_PROFILE}/logs
) to troubleshoot any possible issues.
Closing Notes
While this seems like a long process, once you have a working configuration it’s very easy to enable AD authentication, and almost seamless for the users.
If your project still has a high influx of SDNs, having all these steps automated (with Bash, Ansible or anything else) would be the next step. SDNs with full builds of MIP are known to overwrite AD configuration.


Selects a version of Groovy to add to the system path.
If you leave this at (Default) then groovy will just run the CLI
(groovy.ui.GroovyMain) from the version of Groovy currently bundled in Jenkins.
This is enough for simple scripts, but does not support specific command-line options of the full Groovy launcher.


Nationwide Angelhack House Pricing Training & Predicting Test
Show Vega Graphs?
Open console for better logs; Loading...