Plugin Information |
|---|
View Config Rotator on the plugin site for more information. |
Developed by
Sponsored by
Config Rotator, now with Git support
Introduction
In ClearCase UCM a composite baseline describes dependencies between different baselines of components in a parent/child relation.
This 'dependency graph' in a composite baseline describes a configuration, where one specific baselines defines a relation to other specific baselines – potentially nested in several layers.
But it can also be regarded as a more generic structure that simply describes a hierarchy of components.
When viewed as a hierarchy it's interesting to know, if another (newer) component in the structure would still be compliant with the configuration as a whole. Somebody ought to test
that each time a new baseline of a component in the hierarchy is released.
The Config Rotator monitors the SCM for newer versions of components in the structure, and executes this test when necessary. The configuration is only created temporary and only the
result of the try-out is stored. The actual tested configuration is not persisted. Component developers can subscribe to test results involving their components through ATOM feeds on the Jenkins job running the Config Rotator.
Supported SCMs
- ClearCase UCM
- Git, from version 1.1.0
Feature highlights
- Try-out new configuration of components, including reset to old configuration to try again
- Be able to subscribe to Atom feeds, by component, with information about new compatible or incompatible configuration with the component
Requirements and recommended setup
ClearCase UCM
- You need a working ClearCase environment for the user running the Jenkins build on the host (Jenkins master or slave) where the build is executed
- Plugin is in current version only tested on Windows
- Freestyle builds must be used
- Jenkins slaves are tested running as a service, or Java Webstart (it's important user running service or Java has a working ClearCase environment)
Future plans might be Linux support or other ways to setup job and master/slave. If you are using the plugin in other setups than the above, kindly let us know if it works or not.
- Issue or inquiry use Jenkins Jira and see Known Issues below
- Other questions: http://www.praqma.net/support
Git
Git requires no special setup.
Getting Started Guide
In the Source Code Management section select the Config rotator option
ClearCase UCM Configuration
The Context Project VOB is where the UCM project of the temporary stream is located. In this Project VOB a special UCM Project must be created and named jenkins
Contribute data globally will write the resulting action of a config rotator build to a database specified in global configuration under the global configuration page:
The UCM configuration is a series of baselines describing the configurations.
- Baseline A baseline describing a component of the configuration
- Promotion level The required promotion level for the baseline
- Fixed Fixation of configuration component. Can this component be rotated or not.
Git
- Name Source location of the workspace. If empty, the name of the repository is used.
- Repository The URL of the Git repository.
- Branch The branch to rotate. Master is used if empty.
- Commit Offset commit to rotate from, either a SHA1 or tag.
- Fixed Fixation of configuration component. Can this component be rotated or not.
Feature description
Trying a series of configurations
- Set Your job up to poll the SCM
- When Config Rotator finds new baselines, it starts building
Picture show a series of successfull build. The project/job page will show latest result for the configuration. If You click on the a build the tested configuration from the build is shown.
Click the Config Rotator link in the left menu on the project/job to view all tried configurations
Using feeds
|
|
- Main page of Jenkins shows a link to the Config Rotator feed page
- For every component in a build earlier executed, a feed for the component contains information about the outcome of the test showing compatible or incompatible. |
- Use your favorite RSS/Atom feed reader and subscribe the links.
Reset to old configuration
If You wan't to try a configuration once more, and continue from that time on, go to the job, click a build and on the build page click Reset to this configuration
- Note that resetting to a configuration applies only on the next build, thus the project/job page is first updated after next build.
Changes link working on component baselines
We have implement the Changes feature to show changes between the baselines of the changes component in the configuration.
Known Issues (current version)
If it's broken ...We Can Fix It!
- We've had people reporting issues when trying to copy existing jobs using the config rotator SCM component, where the copied data is different from the target job.
- There are issues with changesets prior to 1.0.1. The changeset would not properly recognize the user of the change. This should is fixed in the most recent version. We've had to change the format of the changes.xml files created by the job, so only changesets generated with 1.0.2 will work as designed, and 1.0.1 changeset will still show the user as 'unknown'.
- "Build has failed" mails are sent even though the build is marked as "nothing to do". Make sure the email plugin is run after the config rotator post build step. Yes, there is such a thing. Normally it is added automatically, inserted at random. It is required and cannot be disabled.
Changes
Version 2.0.0(August 25, 2016)
- Fixed an issue with the Git implementation not releasing file handles on windows (#10)
- Fixed an issue that prevented job being saved on Jenkins 2.13+ (#9)
Version 1.3.1(October 12, 2015)
- Added support for JobDSL (JENKINS-30904)
Version 1.3.0(August 28, 2015)
- Add 'Use newest' option for Config Rotator when using ClearCase as SCM (JENKINS-28983)
Version 1.2.1(August 18, 2015)
- Fixed an issue with Filters not working properly in ClearCase (JENKINS-29975)
Version 1.2.0(July 6, 2015)
- Introduced the ability to add data for subscription (JENKINS-27215)
- Added the ability to turn this feature on/off (JENKINS-28065)
Version 1.1.8(Januar 29, 2015)
- Fixed an issue with empty dep. components (JENKINS-26623)
Version 1.1.8(November 17, 2014)
- Properly trigger reset, when job altered and saved (JENKINS-24822)
Version 1.1.7(August 16, 2014)
- Improved performance (JENKINS-23653)
Version 1.1.6(June 23, 2014)
- Fixed an issue with clearcase, unable to create workspace when view is deleted (JENKINS-22832)
Version 1.1.5(May 2, 2014)
- Fixed an issue where an invalid configuration could cause an infifinite build loop. (JENKINS-22533 and JENKINS-22842)
Version 1.1.4(March 11, 2014)
- Improved the layout in IE9. The layout is now longer garbled when usiing IE9. (JENKINS-20981)
- Fixed an issue with rebasing, the plugin will now attempt to cancel a rebase if it underway (JENKINS-22058)
Version 1.1.3(December 20, 2013)
- ClearCase UCM: Clarified error message (JENKINS-21068)
- ClearCase UCM: Improved checkout performance (JENKINS-21069)
- Fixed an issue where polling could result in 'Nothing to do' grey builds (JENKINS-21066)
- ClearCase UCM: Handling hijacked files (JENKINS-21065)
Version 1.1.2(August 26, 2013)
- View tag now uses remote computername as postfix (JENKINS-18603)
Version 1.1.1(June 4, 2013)
- Config Rotator triggers, but nothing new is found (JENKINS-18194)
- Config spec for ClearCase UCM is not created correctly (JENKINS-17803)
Version 1.1.0(April 14, 2013)
- Git for Config Rotator (JENKINS-17604)
- Unload component from Config Rotator job does not work (JENKINS-17230)
- Config Rotator does not trig on new baseline (JENKINS-17229)
Version 1.0.4(April 3, 2013)
- Config Rotator does not trig on new baseline (JENKINS-17229)
- Use nothing to build (grey builds) if there is no new baselines (JENKINS-14746)
Version 1.0.3(April 2, 2013), faulty release
Version 1.0.2
- Changesets are now visualized like they are in the ClearCase UCM Plugin
- Fixed user identity in changeset - JENKINS-15481
Version 1.0.1
- Fixed missing icon in rotated configuration - JENKINS-13989
- Fixed incorrect feed urls - JENKINS-13988
Release note
We have implemented two levels of check of configuration. The first check is if configuration is loadable in ClearCase. The second level of check is if the configuration added make sense in a context of configuration rotation. Eg. config-rotator does not allow the same component more the once.
Polling check the first level, and abort polling if check is not passed.
Builds do both checks and fail if not passed.
Version 1.0.0, initial version
Attachments:
Screen Shot 2012-04-20 at 4.29.53 PM.png (image/png)
Screen Shot 2012-04-20 at 4.35.23 PM.png (image/png)
onlyOneComponentError.png (image/png)
cc_ucmconfig.png (image/png)
cc_ucmconfig.png (image/png)
cc_ucmconfig.png (image/png)
praqma_logo.png (image/png)
grundfos_logo.jpg (image/jpeg)
dump2.png (image/png)
cc_ucmconfig2.png (image/png)
configrotatormainmenulink.png (image/png)
configrotatorfeedpage.png (image/png)
changes.png (image/png)
changes2.png (image/png)
reset2conf.png (image/png)
projectpage.png (image/png)
reset2conf.png (image/png)
changes2.png (image/png)
projectpage.png (image/png)
overviewofconfiguration.png (image/png)
praqma_logo_70x70.jpg (image/jpeg)
url-1.jpeg (image/jpeg)
ccucmconfigure.png (image/png)
configure1.png (image/png)
gitconfigure.png (image/png)
Contribute.png (image/png)
ccucm_config.png (image/png)
CR_Contribute.png (image/png)


| CONSTELLATION Action | User Action | Menu Icon |
| Open Attribute Calculator | Views -> Attribute Calculator |
|
The attribute calculator is a tool which allows users to set the values of node and transaction attributes based on complex calculations involving other attributes and graph properties. These calculations are referred to as 'scripts'. The attribute calculator includes a number of inbuilt scripts, as well as features to assist in and simplify the process of creating new scripts.
The interface to the attribute calculator is depicted above. It is organised into three main columns; the controls column, the script column, and the docs column. The sizes of the columns can be adjusted by dragging the grey dividers that separate them. There is also the execution controls at the bottom right which are used to run a script.
The controls column is used to set up and build an attribute calculator script. The first three drop down boxes allow for us to specify the details of the attribute we will be setting. The final drop-down and list allows access to a number of templates which assist in building scripts.
A detailed description of each control is as follows:
The insert in script utility also has a special category 'complete scripts'. These are entire scripts to perform predetermined calculations for specific attributes. Double clicking them will not place anything in the current script. Instead, the load button must be pressed, which will completely overwrite the current script as well as the attribute that is being set.
The Script column contains the actual script that we want to use to set the values of an attribute. Text can be typed directly into this column, or inserted by using the control's column 'insert in script' utility.
The Docs column provides information about the attribute that is being set, as well as information about the currently selected category and item in the controls column's 'insert in script' utility.
The Execution controls are used to configure and run the script.


This is the final stage of our project. You need to add a menu for a quick game launch with a specific player configuration. Your program also lacks more detailed messages in the status bar about the current status of the game.
Make the status bar more informative. We already have the Game in progress
status; add a new message that displays the current turn: The turn of {0} Player ({1})
. After the end of the game, the program should output the following message: The {0} Player ({1}) wins
. You can use the MessageFormat
class for this (take a look at the official Oracle doc for help). Instead of {0}
, insert either Human
or Robot
. Instead of {1}
, output either X
or O
.
Add a Game menu that includes five items:
You can add a dividing line before the Exit
item. You can use the following piece of code for this:
menuGame.addSeparator();
menuGame.add(menuItemExit);
When you select one of the first four menu items, the program must clear the field, set the desired player values in the toolbar, and start the game. When the game is on, the Start/Reset
button must be set to Reset
mode, the player buttons must be disabled, and the field cells must be enabled.
For testing purposes, the menu components should be named as follows:
MenuGame
MenuHumanHuman
MenuHumanRobot
MenuRobotHuman
MenuRobotRobot
MenuExit
Example 1: Initial setup
Example 2: New game
Example 3: X wins
Example 4: The menu


The graphical Assosiation representation of trains passing in India across zones and states with several variations.
Kms : 03500 Type : Passenger Local Hyderabad Delhi Express Ladies Special Jan Shatabdi Super Fast Duronto Sampark Kranti shatabdi Mail Garib Rath Rajdhani Zone : NFR SR CR ER SCR NCR WR SWR SECR NR SER ECR NER WCR NWR ECoR KR On : Sunday Monday Tuesday Wednesday Thursday Friday Saturday


Preparation time
overnight
Cooking time
over 2 hours
Serves
Serves 4-6
James Martin makes the ultimate fish finger sandwich, topped with old-school mushy peas and scraps.
For the mushy peas, measure the peas in a jug. Pour them into a large bowl and cover with 3 times their volume of cold water. Add the bicarbonate of soda and soak for at least 12 hours, or preferably overnight.
Drain the soaked peas and rinse them under cold water.
Bring the soaked peas to the boil in a large pan of cold water. Reduce the heat until the water is simmering and simmer for 1½-2 hours, covered, stirring from time to time, or until the peas are mushy in texture but not too dry. If they are still wet in texture after 2 hours, continue cooking, uncovered, to dry out a little.
Beat in the butter and season, to taste, with salt and freshly ground black pepper.
Meanwhile, for the lemon mayonnaise, blend the eggs and mustard in a food processor until pale and creamy. With the motor still running, gradually add the oil in a thin stream, until the mixture thickens to a smooth, thick mayonnaise (you may not need all of the oil). Stir in the lemon zest and juice and season, to taste, with salt and freshly ground black pepper. Chill in the fridge until needed.
For the battered pollock, mix the flour, yeast, sugar, salt and vinegar together in a large bowl until well combined. Whisk in the beer until the mixture comes together as a thick, smooth batter.
Set the batter aside to ferment for about 30 minutes. It is ready to use when the mixture starts to bubble.
Heat the dripping or vegetable oil in a deep-fat fryer to 190C, or heat the oil in a deep, heavy-based frying pan until a breadcrumb sizzles and turns golden-brown when dropped into it. (Caution: Hot oil can be dangerous. Do not leave unattended.)
Dip each piece of fish in the batter to coat thoroughly. Lower the fish fingers into the hot oil in batches, and fry for 4-6 minutes, or until the fish is cooked through and the batter is golden-brown. Remove the fish fingers from the oil using a slotted spoon and set aside to drain on kitchen paper. Season, to taste, with salt.
When all of the fish has been cooked, drizzle the remaining batter into the hot oil and fry until crisp and golden-brown.
To serve, butter the baguette halves, then spread them with the mushy peas. Fill the baguette with the pieces of pollock, then drizzle over the lemon mayonnaise. Sprinkle over the scraps of batter. Cut the filled baguette into slices and serve on a platter for people to help themselves.


私有Cocoapods管理项目，介绍：
CocoaPods is a great way to manage dependencies (mostly open source code) in your iOS or OS X project.
It implements a Gemfile like configuration file (called a Podfile) where you declare your dependencies and provides all the means to keep those libraries up to date as your project grows.
I want to cover a less common use of CocoaPods: creating your own Pods repository for internal use.
pod repo add MyPrivatePods git@bitbucket.org:你的用户名/podspec.git
这里注意的是：需要把当前本机cocoapods升级到最新版本. 执行：
gem update cocoapods
pod spec create MyLibrary
注意：MyLibrary是私有库名称MyLibrary.podspec
文件pod spec lint MyLibrary.podspec
Now you need to edit that Podspec to make it complete and lint. Once you do, you can lint it to make sure the project compiles, by running pod spec lint MyLibrary.If everything passes, you are good to go! If not, fix the errors in the Podspec and make sure it lints.
这里需要注意：可能会出现The version should be included in the Git tag.
错误，处理方式是：看来CocoaPods验证spec文件时会匹配git地址的tag和配置的spec文件中的version，如果二者不比配，CocoaPods判断版本有可能不一致，就会显示这样一句warning。将spec文件中的s.version改成和tag改成一样的数字之后，这个warning顺利地被解决了。
cocoapods源码里有发现：
if tag && !tag.to_s.include?(version)
warning '[source] The version should be included in the Git tag.'
end
正常运行会显示出：
The final step is adding the Podspec to your private specs repository. To do that, you runpod repo push MyPrivatePods MyLibrary.podspec
This step will lint the library again, and copy it to you local repo, and push that repo to git. If you don’t want it to push, as an extra measure, you can add the --local-only parameter1.
这里有个处理是：MyPrivatePods 名称对应的是~/.cocoapods/repos
下的MyPrivatePods目录
执行到这里私有库基本完成，接下来就是集成到项目里了。
To share these specs with your teammates, they only need to add the new specs repository to CocoaPods by runningpod repo add teambestSpec git@bitbucket.org:你的用户名/podspec.git
这样会在~/.cocoapods/repos
目录下新出现teambestSpec目录
CocoaPods is an amazing tool. For some companies dealing with internal reusable libraries is a daily business. Using CocoaPods as depicted has several benefits:
It’s straightforward to share an internal specs repository with teammates.
Podfile文件:
platform :ios, "7.0"
pod "TKPhoto"
然后依次执行pod install --verbose
题外资料：


In order to optimize our ship management, Hsin Chien Marine Co., Ltd. is organized into the structure depicted above. Please click on each department for additional available information.


What is the difference between Margin, Border, and Padding?
25th April 2019
To understand margins, borders, and padding we have to look at something called the CSS Box Model.
You can see it below.
It is essentially a box that wraps around every single html element (an element is any content that appears on the page - it could be a heading, a paragraph, an image… the list goes on).
The box model contains different parts.
Content - the filling of the box, where text and images and all the fun stuff apears.
Padding - Clears an area around the content. The padding is transparent- you don’t see it’s there but you can definitely notice when it’s not.
Border - A border that goes around the padding and content. This can be fun colours and patterns like
this
Margin - The margin clears an area outside the border. The margin is also transparent. Almost invisible BUT important
All of these elements together allow us to add a border around elements, and to define space between elements.
Now here's a much better box model for your enjoyment.


So first off I decided to post these every two weeks instead of every week. I found that I was only halfway through the next feature when it was time to post a new update and decided it would be better to have a full feature shown off rather than half of one.
Speaking of the feature, the main feature that I designed and prototyped this week was the researching mini-game that the player interacts with everytime they discover a new herb. Contained within the player's house is a research station that the player uses to discover each herb's properties. Here they learn various things about the herb such as elemental properties and the ideal preperation method.
For the actual gameplay for this feature I struggled for a while trying to figure out what would be the best way to convey a "research" game. I knew that it had to have a few components:
For those unfamiliar, Masyu is a logic puzzle laid out on a grid with white and black dots ocupying a select few grid spaces. The goal is to connect all of the dots in a loop while obeying each colored dots' rules. For black dots, you need to turn as the line passes through it and for white dots you need to go straight through. Additionally, the spaces before and after the black dots have to be straight while for the white dots they need to turn.
Base Game
(Green == Start, Red == End)
Completed Game
I decided to change around the game slightly and remove the requirement for the before and after lines as well as the requirement for a loop. Each mini-game will differ based on the herb and will be hand crafted to said herb. Instead of a loop there will be a set amount of end points The difficulty of each puzzle will involve the placement/number of dots as well as the number of end points. The white and black dots are replaced with elemental runes corresponding to the elements contained in the herb. The player will need to connect all of the runes in one or more lines with the end of each line connecting to an end point.
This system would allow for the player to come up with their own solutions to each game as well as scale complexity as needed. While currently the mechanic is mainly functional, I am really happy with the puzzle mechanic as I feel like games similar to mine struggle to make progression harder within the later stages of the game.
In addition, I worked on a bit on the cauldron component of potion making. I implemented three seperate devices that the player can use to increase or decrease certain attributes.  Each herb can also be included into the cauldron as a raw ingredient to use it's base attributes. Currently I haven't implemented the herb attribute system so it only outputs the same potion no matter what.
(Red = Distiller, Orange = Mortar and Pestle, Blue = Smoker, Green = Make Potion, Purple = Cancel, Black = Cauldron)
For the next sprint I'm planning on figuring out more of the artstyle and attempting to create some of the assets. While I am not particuarly good at art, I have done some pixel art, like the character currently in the game, however I'm still not sure if I want to do a pixel art style for the game.


Welcome to Cows
Money: $
Milk:
gallons
Dairy Cows
Number:
/
Breed:
Price: $
Milk Given:
Buy Dairy Cow
Milk


@(crewCount : Int)(crewNames : List[String])(avatar : Int) @import helper._
You are back at home port with nothing to show for it. Better get going before someone notices that you only have @crewCount men left.
Remaining Crew Members:


This can't be undone!


Brussels Sprouts
It’s that time of year again, when a lot of people will enact great tragedies on that most underappreciated of vegetables, the Brussels sprout.
This is the correct way to prepare Brussels sprouts. It’s also one of the easiest and lowest-effort. The ingredients are few and simple. The work is minimal. It requires very little skill and is easy to learn. If you’ve never had Brussels sprouts prepared like this, you’ll be amazed at how good they taste. In fact, you may learn for the first time that they even have a taste, and that it is sweet and delicious, and not at all improved by bacon, cream, or vinegar, or whatever other awful tortures people put these things through.
Ingredients
- Brussels sprouts, ideally all roughly the same size
- Some salt
- Plenty of oil
Steps
Rinse the sprouts.
Cut them in half longitudinally. That is, so that the cut goes through the stem, and you have two symmetrical halves. Don’t cut them along the equator, if you do that they’ll shred. Put them in a bowl and try not to break them up too much, but don’t sweat it if a few leaves fall off.
Put enough oil in a large flat pan so that it covers the bottom. Heat it up.
While it’s heating, place the sprouts in the oil flat side down. Don’t just dump them all in there. This is important. Cover the bottom, but do not do more than one layer. Every sprout should have its flat face fully flush against the bottom of the pan.
If the sprouts start to absorb some of the oil, put some more in. The bottom should be covered, but they should not be swimming.
Toss any stray leaves in there just kinda randomly, it’s fine.
Throw a bit of salt on them. I give it a good “shooka-shook” from the salt shaker, probably like a quarter teaspoon or so, but this is pretty flexible. Make them, and if they’re not salty enough, put some more salt on them and use a bit more next time.
The cooking time and heat will need to vary based on the size of the sprouts. The goal is to burn the bottom and let the insides steam in the little dome of Brussels sprouts leaves. Big sprouts will take longer to cook the insides, so you’ll use a lower heat and cook for longer.  If you get it a bit off, it’s fine. Just means that they might have to get a little more or less browned.
They’re done when the top is dark green and the bottom is completely browned (but not black, that’s probably too much).
Use a tongs to pick one of them up and check if they’re done.  They don’t need to be messed with, stirred, moved around, or touched. They just need to burn and steam, and that’s it.
Results
They taste like sweet popcorn. I’m serious. The crunchy bottom tends to soften pretty quickly, so sooner you eat them, the better, but this is usually not a problem. (And they’re still good when they’re not super crispy, just a little less amazing.)


Brett Zamir
on 2010-06-21 04:50:35
@Paulo: I think Kevin wants to avoid automatically importing PHP constants (whether as globals or on the namespaced object). If a user wants them, they can follow the notes at http://phpjs.org/functions/get_defined_constants:839 to get them in scope, but this function constant() could still be useful without them in the case of user-defined constants.
Paulo Freitas
on 2010-06-19 18:06:27
Hmm, this one should require get_defined_constants(), no? When I wrote I think that the get_defined_constants() doesn't exist yet, but for now it should be useful to do things like constant('DATE_W3C'). :)


Page 2 of 6
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:19 pm
by strafe of x2
lol i keep almost getting 10 and then i will die lose all my poo and exp lol
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:20 pm
by strafe of x2
you better tell me when it comes back up if im not in there lol
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:21 pm
by ven
lol ok i will
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:22 pm
by ven
its back up
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:28 pm
by Karl G.
Sorry this keeps going down guys--I found what I think is the last crash bug. It is caused when you all gather together and bring a ton of monsters on screen (40+) =P
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:46 pm
by strafe of x2
lol we dont usually get more than like 10-20
i hope i didnt just lose all of that lol
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:47 pm
by ven
yea most me and strafe got was like 20 if that
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:58 pm
by strafe of x2
man i had soooooo much good gear like 20 minutes ago... and i keep getting reset to lvl 7 lol
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 1:59 pm
by ven
lol just like my character 2 resets ago
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:01 pm
by strafe of x2
man i had it made for both of us with all the stuff i was pickin up i had some gauntlets or something and some throwing daggers total that would add like 8atk spd
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:02 pm
by ven
Dang. I seen all your bronze items that was awesome.. we'll just have to get it all back lol
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:03 pm
by strafe of x2
yeah i had like 3 more things i didnt get to show u. i say we just pick up whatever and whoever can use it does and just swap poo bk in forth cause it seemed to work out nicely. UGH COME UP SERVERS!
jk karl (ps its forcas in game)
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:05 pm
by ven
yea sounds good... servers came back up then lagged again so he took em down
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:06 pm
by strafe of x2
u talk to em? to knows what causing?
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:07 pm
by ven
he didn't know what was causing it.
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:08 pm
by strafe of x2
well it seems pretty much just whenever there too much stuff happening at once it all bogs down. any clue on who hosts the server?
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:09 pm
by ven
Yea it does seem like that.. but idk who hosts it... also it appears that we are the only ones really excited.. no one else is posting lol
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:23 pm
by strafe of x2
good god no.....
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:24 pm
by electro element
Well it does seem like a lot of fun. Much better than the last time I played the alpha version. The spawn is absolutely insane right now but that's not such a bad thing. Looks great so far, Karl.
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:25 pm
by strafe of x2
lol well i dont wanna go announce to xt yet cause it keeps going down and up and keep losing levels and they can be assholes about little things so i dont wanna post there
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:26 pm
by ven
no need to post on it yet until its on its feet
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:27 pm
by strafe of x2
yeah thats what i mean. and i nevermind having a little kickstart over people
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:28 pm
by Funk
When will we be able to get online?
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:30 pm
by ven
when he puts it back up... hes been fixing a few bugs here and there
Re: What's going on with this update
Posted:
Mon Aug 24, 2009 2:31 pm
by strafe of x2
yeah hes been in there messin with stuff all day.


Design by ZulNs @Yogyakarta, January 2016
Animation
Unpack
Expand sides
Pause Animation
Play All Transitions
Stop Transform
Settings
Diameter:
px
Cells per circum:
px
Opacity:
%
Transition interval:
ms
Transform interval:
ms
Apply


MFClient class
This class exposes methods that you use to communicate with the IBM MobileFirst Platform Server.
Constructors
- MFClient()
Properties
- hashCode → int
-
The hash code for this object. [...]
read-only, inherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
Methods
-
addGlobalHeader(
{String headerName, String headerValue}) → Future< void> -
Adds a header with name
headerName
and valueheaderValue
to all calls made by this package. [...] -
getDeviceDisplayName(
) → Future< String> - Returns the display name of the device. The display name is retrieved from the MobileFirst Server registration data.
-
getServerUrl(
) → Future< String> - Returns the URL of the Mobile Foundation server. [...]
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed. [...]
inherited
-
pinTrustedCertificatesPublicKey(
{List< String> certificateFileNames}) → Future<void> - Pins the host X509 certificate public key to the client application. Secured calls to the pinned remote host will be checked for a public key match. Secured calls to other hosts containing other certificates will be rejected. Some mobile operating systems might cache the certificate validation check results. Your app must call the certificate pinning method before making a secured request. Calling this method a second time overrides any previous pinning operation. The certificates must be in DER format. When multiple certificates are pinned, a secured call is checked for a match with any one of the certificates
-
removeGlobalHeader(
{String headerName}) → Future< void> - Removes a header that was previously added by the addGlobalHeader method [...]
-
setDeviceDisplayName(
{String deviceDisplayName}) → Future< void> -
Sets the display name of the device.
The
deviceDisplayName
is stored in the MobileFirst Server registration data. -
setHeartbeatInterval(
{int heartbeatIntervalInSeconds}) → Future< void> -
The number of seconds(
heartbeatIntervalInSeconds
) between which a heartbeat request is sent to the MobileFirst server to keep the connection alive. The default interval is 7 minutes or 420 seconds. Heartbeats are sent only when the app is in the foreground. [...] -
setServerUrl(
{String serverUrl}) → Future< void> -
Modifies the URL of the Mobile Foundation server during runtime to
serverUrl
. Calling this method clears the client context and the app is no longer logged in to any Mobile Foundation server. Subsequent calls to the Mobile Foundation server will cause a new device registration. Verifying the validity of the new URL is on the developer. [...] -
toString(
) → String -
Returns a string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator. [...]
inherited
Constants
- CERTIFICATE_FILENAMES → const String
-
"certificateFileNames"
- DEVICE_DISPLAYNAME → const String
-
"deviceDisplayName"
- HEARTBEAT_INTERVAL → const String
-
"heartbeatIntervalInSeconds"
- WLCLIENT_CERTIFICATE_PINNING → const String
-
"pinTrustedCertificatesPublicKey"
- WLCLIENT_GETDEVICE_DISPLAYNAME → const String
-
"getDeviceDisplayName"
- WLCLIENT_SETDEVICE_DISPLAYNAME → const String
-
"setDeviceDisplayName"
- WLCLIENT_SETHEARTBEAT_INTERVAL → const String
-
"setHeartbeatInterval"


Quick Links
How to Book Life in the UK Test
Who Needs to Give Life in the UK Test
Life in the UK Test Fee and Payment
ESOL and Life in the UK Test
Taking Life in the UK Test
Language of Life in the UK Test
Why People Fail Life in the UK Test
After Life in the UK Test
Life in the UK Test Code of Conduct


Unfortunately we do not yet support Rogerthat in your browser Internet Explorer.
But no worries, we have a solution.
By installing the "Google Frame" plugin in your browser, you will be able to enjoy the functionality of Rogerthat.
You can find more information about Google Frame on http://www.google.com/chromeframe
But no worries, we have a solution.
By installing the "Google Frame" plugin in your browser, you will be able to enjoy the functionality of Rogerthat.
You can find more information about Google Frame on http://www.google.com/chromeframe


If you have data with very different scales, though, a paired line graph is not a great choice. Consider the graph below, which shows CO2 emissions for the United States again (in gigatons) and the emissions for Singapore, a much smaller nation with much lower emissions.
in-context


Location Picker Prototypes
These are location picker widgets that read data from the country register and the territory register.
Demos
Demo 1: basic picker
Demo 2: passport details
A location picker is used to collect country of birth as part of passport details.
Demo 3: country of birth
Collect country of birth and country of residence.
Demo 4: charity operating location
Collect which country a charity has most recently operated in.
Code
Code for the location picker can be found on Github.Development versions
Example 1: Plain JavaScript + plain register
This example uses plain JavaScript to query a public register, and populates a
<select>
element. It demonstrates one of the simplest ways to query a
register and present the results to the user.
Example 2: jQuery Typeahead + plain register
This example uses the corejs-typeahead jQuery plugin and populates it using the same data from Example 1. It demonstrates one way to use an off the shelf component with a public register.
Example 3: jQuery Typeahead + register data file
This example uses the corejs-typeahead jQuery plugin and populates it using a handmade data file, based off of register data. It augments the typeahead plugin and allows it to handle synonyms, translations, endonyms, and territory relationships.
Example 4: jQuery Typeahead + fixes + full register data v1
This example builds upon the previous one by adding progressive enhancement and styling tweaks, both inspired by DWP's implementation. It also moves part of the initial data processing logic server-side, has separate pages for English and Welsh, is compatible with more browsers, has some minor usability fixes, and uses a much larger dataset.
Example 5: Accessible Typeahead v0.1.2 + full register data v2
This example uses a version of a custom built typeahead that focuses on accessibility. The styling is almost completely recycled from example 4. The data is an enhanced version of the data from example 4, with additional territories and synonyms.
Example 6: Accessible Typeahead v0.2.3 + full register data v2 + weighting
This example updates the version of the typeahead. It adds weighting to sort results by their type of match, and then alphabetically.
Example 7: Accessible Typeahead v0.3.1 + full register data v3 + weighting
This example updates the version of the typeahead. It adds autoselect and displays the list of options inline. The data has also been cleaned to not display country codes to users.
Example 8: Accessible Typeahead v0.4.1 + full register data v3 + Picker Engine v0.0.2
This example updates the version of the typeahead. It changes the way hovering works, allows users to type while their focus on on a suggestion, adds built-in support for progressive enhancement, and more options for customising the way results look. It also uses a productised version of the picker engine.


--- layout: post title: The Winner from the Crafty Giveaway is... date: 2011-04-26 06:22:06.000000000 -04:00 categories: - Books - Giveaways tags: - Giveaway - Pass Me A Smile by Toyoko Sugiwaka status: publish type: post published: true meta: aktt_notify_twitter: 'no' _edit_last: '1' author: login: cint email<EMAIL_ADDRESS>display_name: Jacinta first_name: Jacinta last_name: '' ---
Comment number 5 who is:
Rachel
Oh my, oh my, this book looks so sweet!
Congratulations Rachel you have won a new copy of Pass Me A Smile by Toyoko Sugiwaka.
Thank you to all the other lovelies who entered. Jacinta x
Via random.org


We made different types Of Cookies and we are happy to show some: 1- This is a Nemo fish cookies which is very known at Melbourne - Australia 2- This is a Swedish cookies and it is the famous type of cookies in Sweden 3- This is a Candy fish which is very known in North and Central America FOR MORE INFORMATION CLICK Here


To sponsor a meetup, or if you have any questions about sponsoring, please email us.
Sponsorship is $350, which covers the cost of food and drinks (we typically feed 60+ attendees). We handle all of the ordering and delivery logistics. Remaining money, if any, is used to offset the recurring costs of running the meetup (e.g. meetup.com fees, swag, etc).
What you get:
This is a great opportunity to create some local awareness, find potential employees, give back to the community, and meet new people. And more importantly, you'll be supporting local tech culture, which helps everyone!
Alternate Sponsorship Opportunities
We've had sponsors provide giveaway items from books to stickers to physical gadgets. If you are interested in providing swag or giveaway items, let us know!
Sponsor Guide
If you are ready to sponsor the meetup we have a handy sponsor guide that includes what we'll need from you to get the sponsorship set up.


Go Elasticsearch Alerts¶
Release v0.1.15.  To get started, just write a configuration file and a rule and you can receive alerts like the Slack alert shown below when Go Elasticsearch Alerts finds new data matching the rule.
To try it out yourself, check out the demonstration.
The User Guide¶
This part of the documentation, begins with some background information about the Go Elasticsearch Alerts project, then focuses on step-by-step instructions for installing and using it.


Class ConsoleUtils
Provides utility methods for use with the default Console class.
Inherited Members
Namespace: THNETII.Common.Cli
Assembly: THNETII.Common.Cli.dll
Syntax
public static class ConsoleUtils
Methods
| Improve this Doc View SourceReadLineAsync(CancellationToken)
Performs an asynchronous, cancellable ReadLine() operation.
Declaration
public static Task<string> ReadLineAsync(CancellationToken cancelToken = default(CancellationToken))
Parameters
| Type | Name | Description |
|---|---|---|
| CancellationToken | cancelToken | An optional cancellation token that should be used to cancel the operation. |
Returns
| Type | Description |
|---|---|
| Task<String> | A Task<TResult> that returns the next line of characters from the input stream, or |
Exceptions
| Type | Condition |
|---|---|
| IOException | An I/O error occurred. |
| OperationCanceledException | The CancelKeyPress event was triggered, causing execution to be cancelled. |
ReadLineMasked(Boolean)
Reads the next line of characters from the standard input stream,
intercepting each typed character and optionally prints an asterisk ('*'
) character instead.
Declaration
public static string ReadLineMasked(bool printAsterisk = true)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | printAsterisk | If |
Returns
| Type | Description |
|---|---|
| String | The next line of characters from the input stream, or |
Exceptions
| Type | Condition |
|---|---|
| IOException | An I/O error occurred. |
See Also
| Improve this Doc View SourceReadLineMaskedAsync(Boolean, CancellationToken)
Asynchronously reads the next line of characters from the standard input stream,
intercepting each typed character and optionally writes an asterisk ('*'
) character instead.
Declaration
public static Task<string> ReadLineMaskedAsync(bool printAsterisk = true, CancellationToken cancelToken = default(CancellationToken))
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | printAsterisk | If |
| CancellationToken | cancelToken | An optional cancellation token that should be used to cancel the operation. |
Returns
| Type | Description |
|---|---|
| Task<String> | A Task<TResult> that returns the next line of characters from the input stream, or |
Exceptions
| Type | Condition |
|---|---|
| IOException | An I/O error occurred. |
| OperationCanceledException | The CancelKeyPress event was triggered, causing execution to be cancelled. |
See Also
| Improve this Doc View SourceReadLineMaskedAsync(CancellationToken)
Asynchronously reads the next line of characters from the standard input stream,
intercepting each typed character and writes an asterisk ('*'
) character instead.
Declaration
public static Task<string> ReadLineMaskedAsync(CancellationToken cancelToken)
Parameters
| Type | Name | Description |
|---|---|---|
| CancellationToken | cancelToken | An optional cancellation token that should be used to cancel the operation. |
Returns
| Type | Description |
|---|---|
| Task<String> | A Task<TResult> that returns the next line of characters from the input stream, or |
Exceptions
| Type | Condition |
|---|---|
| IOException | An I/O error occurred. |
| OperationCanceledException | The CancelKeyPress event was triggered, causing execution to be cancelled. |
See Also
| Improve this Doc View SourceRunAsync(Func<CancellationToken, Task>)
Executes the specified main-function asynchronously, while listening for the cancel key press event to cancel execution.
Declaration
public static Task RunAsync(Func<CancellationToken, Task> asyncMain)
Parameters
| Type | Name | Description |
|---|---|---|
| Func<CancellationToken, Task> | asyncMain | The function to execute. Must not be |
Returns
| Type | Description |
|---|---|
| Task | A Task representing the asynchronous execution of |
Examples
using System;
using System.Threading;
using System.Threading.Tasks;
using THNETII.Common.Cli;
static class Program
{
public static Task Main() => ConsoleUtils.RunAsync(MainAsync);
public static async Task MainAsync(CancellationToken cancelToken = default)
{
await Task.CompletedTask;
}
}
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException |
|
| OperationCanceledException | The CancelKeyPress event was triggered, causing execution to be cancelled. |
UseConsoleColor(Nullable<ConsoleColor>, Nullable<ConsoleColor>)
Creates a new console color context and switches the Console colors to the specified values.
Declaration
public static ConsoleColorContext UseConsoleColor(ConsoleColor? fgColor = default(ConsoleColor? ), ConsoleColor? bgColor = default(ConsoleColor? ))
Parameters
| Type | Name | Description |
|---|---|---|
| Nullable<ConsoleColor> | fgColor | The foreground console color to set, or |
| Nullable<ConsoleColor> | bgColor | The background console color to set, or |
Returns
| Type | Description |
|---|---|
| ConsoleColorContext | A ConsoleColorContext instance which captures the current state of the console colors, so that the colors can be reverted when the returned context is disposed. |
Exceptions
| Type | Condition |
|---|---|
| InvalidOperationException | The color specified for either the foreground color or the background color is not a valid member of ConsoleColor. The InnerException property contains the ArgumentException thrown from the set invocation to ForegroundColor or BackgroundColor. |
| SecurityException | The user does not have permission to set the current value of either ForegroundColor or BackgroundColor. |
| IOException | An I/O error occurred while attempting to write to the current value of either ForegroundColor or BackgroundColor. |


Senior full stack software engineer, worked in several projects going from an Automatic Name Plate Recognition application to High-Value Cargo Transportation logistics. Always seeking better ways to develop applications and integrate teams and services.
Thunders is a Product where you can trade energy in the open market, that is, like a broker it consists of clients buying and selling energy between the parties. Responsible for mantaining the current application version that is written using the .NET Framework and AngularJS. Lead Architect for a new version of the application, using Microservices, CQRS, async messsaging and event sourcing. Helped on the initial CI & CD process using Azure DevOps where the application is deployed to a Kubernetes cluster.
Technologies: C#, AngularJS, Angular 6, .NET Core, EF Core, Rebus, RabbitMQ, MySQL, Azure DevOps, Kubernetes, Helm and Docker
Web application for managing the entire company's equipments and supplies. Application Architect.
Technologies: ASP.NET MVC, HTML, CSS, JavaScript, JQuery and Bootstrap
High-value Cargo Logistics ERP application responsible for managing everything related to the tranportation logistics, risk managment and more. Worked on requirements gathering/analysis, development and continuous delivery.
Technologies: Delphi XE 7, SQL Server and Google Maps API
Application created to support the employees working on the delivering and gathering of the high-value cargo. As Application architect I was responsible for refactoring the existing application to be in sync with the actual Android guidelines and optimize the network communication between the client and the server.
Technologies: Android, SQLite, Google Maps API, ASP.NET WebApi, SQL Server, Push Notifications and Hangfire
First version of a Route Optimization application using genetic algorithms to solve the problems. It can be used along with time-windows, launch time, traffic and more. Application Architect.
Technologies: C#, ASP.NET WebApi, SQL Server and Hangfire
A port of the JSprit library written in Java, it can solve more types of problems when compared to the v1, including vehicle size, max amount of items and more.
Technologies: C#, Java
A simple POC was developed for the city hall as part of a public bidding. Application Architect.
Technologies: Angular 4, HTML, CSS, Typescript
A full responsive hospital evaluation application was developed using browser offline data and sync. Application Architect.
Technologies: ASP.NET MVC, SQL Server, Entity Framework, HTML, CSS, JavaScript, JQuery and Bootstrap
API for the Protege's clients and associated banks to get info about deposits, withdraws, balance and more on what is called Intelligent Safe-Deposit Box. This type of safe-box can distinct each bill value and update the current balance automatically.
Technologies: ASP.NET WebApi, SQL Server, Entity Framework, Hangfire and Windows Service
Part of the development team which was responsible for researching new techonologies to apply into an existing ANPR application. Our job was to enhance the final results using better and newer image processing algorithms.
Technologies: C#, C++, AForge.NET and OpenCV
Surveillance ERP application responsible for managing all the employees, payrolls, weaponry, equipments and supplies. Worked on requirements gathering/analysis, development and continuous delivery.
Technologies: Delphi 7 and SQL Server
Development of an Android application to use at client sites. Several questions may be asked and, for that, a step by step in a wizard-fashion was introduced. The questions are parsed from a document present in the internal memory.
Technologies: Android and SQLite
Responsive and interactive catalog application bringing a new product selling format to increase the sales. The application supports videos, image gallery, mini-games and surveys.
Technologies: HTML, CSS and JavaScript
iOS App responsible for speeding up the inspection process done by the state and federal offices employees. The application uses the camera, GPS sensor, network and offline sync.
Technologies: Objective-C, SQLite, AirWatch and WCF Services
Android App where users can review establishments and give their feedback regarding several items. YouTube video showing how to use it.
Technologies: Android, SQLite, SQL Server and ASP.NET WebApi
Full professional proficiency
Native or bilingual proficiency
Limited working proficiency
Year of accomplishment 2014
I love to study new technologies, when possible I will be reading something even if I only have a small screen. Love to keep up with new patterns and better designs.
Love Netflix, CS:GO, quantum computers, Stephen Hawking and wormholes.


| GTK+ 3 Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Implemented Interfaces |
GObject +----GInitiallyUnowned +----GtkWidget +----GtkContainer +----GtkBox +----GtkButtonBox +----GtkHButtonBox
GtkHButtonBox implements AtkImplementorIface, GtkBuildable and GtkOrientable.
A button box should be used to provide a consistent layout of buttons throughout your application. The layout/spacing can be altered by the programmer, or if desired, by the user to alter the 'feel' of a program to a small degree.
A GtkHButtonBox is created with gtk_hbutton_box_new()
. Buttons are
packed into a button box the same way widgets are added to any other
container, using gtk_container_add()
. You can also use
gtk_box_pack_start()
or gtk_box_pack_end()
, but for button boxes both
these functions work just like gtk_container_add()
, ie., they pack the
button in a way that depends on the current layout style and on
whether the button has had gtk_button_box_set_child_secondary()
called
on it.
The spacing between buttons can be set with gtk_box_set_spacing()
. The
arrangement and layout of the buttons can be changed with
gtk_button_box_set_layout()
.
GtkHButtonBox has been deprecated, use GtkButtonBox instead.
GtkWidget * gtk_hbutton_box_new (void
);
gtk_hbutton_box_new
has been deprecated since version 3.2 and should not be used in newly-written code. Use gtk_button_box_new()
with GTK_ORIENTATION_HORIZONTAL
instead
Creates a new horizontal button box.
Returns : |
a new button box GtkWidget. |


CLU Lab
Department of Linguistics
University of Arizona
I'm a PhD candidate in Linguistics at University of Arizona. I am a member of CLU Lab, advised by Steven Bethard. I am also working with Masha Fedzechkina on psycholinguistic projects. Prior to this, I obtained a master degree in Evolution of Language and Cognition at the University of Edinburgh.
I am both a psycholinguist and NLPer. My main research focuses on exploring the differences of statistical learning between human learners and computational learners. Specifically, I want to explore whether the two types of statistical learners acquire and generalize linguistic information in the same way.


{% extends 'paths/base.html' %} {% load static %} {% block title_block %} Dashboard - Vilo Sky {% endblock %} {% block body_block %}
Hi {{ user.first_name }} {{ user.last_name }}, welcome to your dashboard! From here you can view current and previous searches containing our advice for you.
{% else %}Hi, it’s great to meet you! We hope you find the following advice useful. Feel free to create an account to save your search history and receive updates from the Vilo Sky team.
{% endif %}We recommend the following resources:
{{resource.name}}
{{resource.url}}
We recommend the following resource:
{{resource.name}}
We recommend the following website:
{{resource.url}}
Your search returned no results, you can complete a new search by heading to Find Paths, or you can view another previous search by heading to Previous Searches.
{% else %}Your search returned no results, you can complete a new search by heading to Find Paths.
{% endif %} {% else %} {% if user.is_authenticated %}You have not selected a search, you can complete a new search by heading to Find Paths, or you can view another previous search by heading to Previous Searches.
{% else %}You have not completed a search yet, you can complete a new search by heading to Find Paths {% endif %} {% endif %} {% endif %}


Calculator
Please select an operation and input two numbers
Select Operation:
Add
Subtract
Multiply
Divide
First Number:
Second Number:
Calculate
Your result is:
{{calculationResult}}


Husband. Father. Scientist. Programmer. Rock climber.
Photo of a rock climbing area called Les Trois Pignons near Fontainebleu, France
Some short description...
Some short description...
Some short description...
Some short description...
Some short description...
Some short description...


Planning Calendar
Description
The following is a combined calendar of events for Team Dirt, Alsea Falls, OSU Mac-Dunn, and Starker Alder Creek build days. Events will also typically be posted to Facebook a few days before, so members can mark their availability status. Any event posted to Facebook that is canceled, will still show up on this site, but be marked as canceled.


org.vertx.scala.core
A Buffer represents a sequence of zero or more bytes that can be written to or read from, and which expands as necessary to accommodate any bytes written to it.


Source code for ncf
""" This modules contains netCDF related functions. The functions
in this module typically have a pointer to netCDF variable(s) as
an argument."""
import numpy.ma as ma
import netCDF4
import math
import scipy.constants
[docs]def load_nc(file_in):
""" Returns netCDF Dataset variables."""
return netCDF4.Dataset(file_in).variables
[docs]def folding_velo(vrs, freq):
"""Returns radar folding velocity.
Args:
vrs (dict): Radar variables.
freq (float): Rardar frequency (GHz).
Returns:
float: Radar folding velocity (m/s).
Raises:
KeyError:
No 'NyquistVelocity' or 'prf' in
radar variables.
"""
if 'NyquistVelocity' in vrs:
nyq = vrs['NyquistVelocity'][:]
elif 'prf' in vrs:
nyq = vrs['prf'][:] * scipy.constants.c / (4 * freq)
else:
raise KeyError("Can't find or compute folding velocity!")
return math.pi / nyq
[docs]def findkey(vrs, possible_fields):
"""Finds first matching key from several possible.
Args:
vrs (dict): Dictionary or other
iterable containing strings.
fields (tuple): List of possible strings to be
searched.
Returns:
str: First matching key.
Examples:
>>> x = {'abc':1, 'bac':2, 'cba':3}
>>> ncf.findkey(x, ('bac', 'cba'))
'bac'
The order of the keys to be searched is defaining
the return value if there are several matching strings:
>>> ncf.findkey(x, ('cba', 'bac'))
'cba'
"""
for field in possible_fields:
if field in vrs:
return field
return None
[docs]def radar_freq(vrs):
""" Returns frequency of radar.
Args:
vrs (dict): Radar variables.
Returns:
float: Frequency or radar.
Raises:
KeyError: No frequency in the radar file.
ValueError: Invalid frequency value.
"""
freq_key = findkey(vrs, ('radar_frequency', 'frequency'))
if not freq_key:
raise KeyError('Missing frequency, check your radar file.')
freq = vrs[freq_key][:]
assert ma.count(freq) == 1, 'Multiple frequencies, not a radar file?'
try:
wl_band(freq)
except ValueError as error:
raise error
return float(freq)
[docs]def wl_band(freq):
""" Returns integer that corresponds to the radar wavelength.
Args:
freq (float): Radar frequency (GHz).
Returns:
int: Integer corresponding to freqeuency. Possible return
values are 0 (~35.5 GHz) and 1 (~94 GHz).
Raises:
ValueError: Not supported frequency.
"""
if 30 < freq < 40:
return 0
elif 90 < freq < 100:
return 1
else:
raise ValueError('Only 35 and 94 GHz radars supported.')
[docs]def km2m(var):
""" Converts km to m.
Read input and convert it to from km to m. The input must
have 'units' attribute set to 'km' to trigger the conversion.
Args:
var: NetCDF4 variable.
Returns:
array_like: Altitude converted to km.
"""
alt = var[:]
if var.units == 'km':
alt = alt*1000
return alt
[docs]def m2km(var):
""" Converts m to km.
Read Input and convert it to from m -> km. The input must
have 'units' attribute set to 'm' to trigger the conversion.
Args:
var: NetCDF4 variable.
Returns:
array_like: Altitude converted to m.
"""
alt = var[:]
if var.units == 'm':
alt = alt/1000
return alt
[docs]def site_altitude(*vrs):
""" Returns altitude of the measurement site above mean sea level in [m].
Site altitude is defined as the lowermost value of
the investigated values.
Args:
*vrs: Array of dicts to be investigated.
Returns:
float: Altitude (m) of the measurement site.
Raises:
KeyError: If no 'altitude' field is found from any of
the input files.
"""
field = 'altitude'
alts = [km2m(var[field]) for var in vrs if field in var]
if not alts:
raise KeyError("Can't determine site altitude.")
return min(alts)


Converts this Or
to an Or
with the same Good
type and a Bad
type consisting of
One
parameterized by this Or
's Bad
type.
Converts this Or
to an Or
with the same Good
type and a Bad
type consisting of
One
parameterized by this Or
's Bad
type.
For example, invoking the accumulating
method on an Int Or ErrorMessage
would convert it to an
Int Or One[ErrorMessage]
. This result type, because the Bad
type is an Every
, can be used
with the mechanisms provided in trait Accumulation
to accumulate errors.
Note that if this Or
is already an accumulating Or
, the behavior of this accumulating
method does not change.
For example, if you invoke accumulating
on an Int Or One[ErrorMessage]
you will be rewarded with an
Int Or One[One[ErrorMessage]]
.
this Good
, if this Or
is a Good
; or this Bad
value wrapped in a One
if
this Or
is a Bad
.
Maps the given function to this Or
's value if it is a Bad
or returns this
if it is a Good
.
Returns true
if this Or
is a Good
and the predicate p
returns true when applied to this Good
's value.
Returns true
if this Or
is a Good
and the predicate p
returns true when applied to this Good
's value.
Note: The exists
method will return the same result as forall
if this Or
is a Good
, but the opposite
result if this Or
is a Bad
.
the predicate to apply to the Good
value, if this is a Good
the result of applying the passed predicate p
to the Good
value, if this is a Good
, else false
Returns this Or
if either 1) it is a Bad
or 2) it is a Good
and applying the validation function f
to this
Good
's value returns Pass
; otherwise,
returns a new Bad
containing the error value contained in the Fail
resulting from applying the validation
function f
to this Good
's value.
Returns this Or
if either 1) it is a Bad
or 2) it is a Good
and applying the validation function f
to this
Good
's value returns Pass
; otherwise,
returns a new Bad
containing the error value contained in the Fail
resulting from applying the validation
function f
to this Good
's value.
For examples of filter
used in for
expressions, see the main documentation for trait
Validation
.
the validation function to apply
a Good
if this Or
is a Good
that passes the validation function, else a Bad
.
Returns the given function applied to the value contained in this Or
if it is a Good
,
or returns this
if it is a Bad
.
Returns the given function applied to the value contained in this Or
if it is a Good
,
or returns this
if it is a Bad
.
the function to apply
if this is a Good
, the result of applying the given function to the contained value wrapped in a Good
,
else this Bad
is returned
Folds this Or
into a value of type V
by applying the given gf
function if this is
a Good
else the given bf
function if this is a Bad
.
Folds this Or
into a value of type V
by applying the given gf
function if this is
a Good
else the given bf
function if this is a Bad
.
the function to apply to this Or
's Good
value, if it is a Good
the function to apply to this Or
's Bad
value, if it is a Bad
the result of applying the appropriate one of the two passed functions, gf
or bf, to this Or
's value
Returns true
if either this Or
is a Bad
or if the predicate p
returns true
when applied
to this Good
's value.
Returns true
if either this Or
is a Bad
or if the predicate p
returns true
when applied
to this Good
's value.
Note: The forall
method will return the same result as exists
if this Or
is a Good
, but the opposite
result if this Or
is a Bad
.
the predicate to apply to the Good
value, if this is a Good
the result of applying the passed predicate p
to the Good
value, if this is a Good
, else true
Applies the given function f to the contained value if this Or
is a Good
; does nothing if this Or
is a Bad
.
the “good” value
Returns the Or
's value if it is a Good
or throws NoSuchElementException
if it is a Bad
.
Returns, if this Or
is Good
, this Good
's value; otherwise returns the result of evaluating default
.
Indicates whether this Or
is a Bad
Indicates whether this Or
is a Bad
true if this Or
is a Bad
, false
if it is a Good
.
Indicates whether this Or
is a Good
Maps the given function to this Or
's value if it is a Good
or returns this
if it is a Bad
.
Narrows the Bad
type of this Good
to the given type.
Narrows the Bad
type of this Good
to the given type.
Because Or
has two types, but the Good
factory method only takes a value of the “good” type, the Scala compiler will
infer Nothing
for the Bad
type:
scala> Good(3) res0: org.scalactic.Good[Int,Nothing] = Good(3)
Often Nothing
will work fine, as it will be widened as soon as the compiler encounters a more specific Bad
type.
Sometimes, however, you may need to specify it. In such situations you can use this orBad
method, like this:
scala> Good(3).orBad[String] res1: org.scalactic.Good[Int,String] = Good(3)
Returns this Or
if it is a Good
, otherwise returns the result of evaluating the passed alternative
.
Maps the given function to this Or
's value if it is a Bad
, transforming it into a Good
, or returns
this
if it is already a Good
.
Maps the given function to this Or
's value if it is a Bad
, transforming it into a Good
, or returns
this
if it is already a Good
.
the function to apply
if this is a Bad
, the result of applying the given function to the contained value wrapped in a Good
,
else this Good
is returned
Maps the given function to this Or
's value if it is a Bad
, returning the result, or returns
this
if it is already a Good
.
Returns an Or
with the Good
and Bad
types swapped: Bad
becomes Good
and Good
becomes Bad
.
Returns an Or
with the Good
and Bad
types swapped: Bad
becomes Good
and Good
becomes Bad
.
Here's an example:
scala> val lyrics = Bad("Hey Jude, don't make it bad. Take a sad song and make it better.") lyrics: org.scalactic.Bad[Nothing,String] = Bad(Hey Jude, don't make it bad. Take a sad song and make it better.) scala> lyrics.swap res12: org.scalactic.Or[String,Nothing] = Good(Hey Jude, don't make it bad. Take a sad song and make it better.)
 But at least it is a good song (thanks to swap
).
if this Or
is a Good
, its Good
value wrapped in a Bad
; if this Or
is
a Bad
, its Bad
value wrapped in a Good
.
Returns an Either
: a Right
containing the Good
value, if this is a Good
; a Left
containing the Bad
value, if this is a Bad
.
Returns an Either
: a Right
containing the Good
value, if this is a Good
; a Left
containing the Bad
value, if this is a Bad
.
Note that values effectively “switch sides” when convering an Or
to an Either
. If the type of the
Or
on which you invoke toEither
is Or[Int, ErrorMessage]
for example, the result will be an
Either[ErrorMessage, Int]
. The reason is that the convention for Either
is that Left
is used for “bad”
values and Right
is used for “good” ones.
this Good
value, wrapped in a Right
, or this Bad
value, wrapped in a Left
.
Returns a Some
containing the Good
value, if this Or
is a Good
, else None
.
Returns an immutable IndexedSeq
containing the Good
value, if this Or
is a Good
, else an empty
immutable IndexedSeq
.
Returns a Try
: a Success
containing the
Good
value, if this is a Good
; a Failure
containing the Bad
value, if this is a Bad
.
Returns a Try
: a Success
containing the
Good
value, if this is a Good
; a Failure
containing the Bad
value, if this is a Bad
.
Note: This method can only be called if the Bad
type of this Or
is a subclass
of Throwable
(or Throwable
itself).
Note that values effectively “switch sides” when converting an Or
to an Either
. If the type of the
Or
on which you invoke toEither
is Or[Int, ErrorMessage]
for example, the result will be an
Either[ErrorMessage, Int]
. The reason is that the convention for Either
is that Left
is used for “bad”
values and Right
is used for “good” ones.
this Good
value, wrapped in a Right
, or this Bad
value, wrapped in a Left
.
Transforms this Or
by applying the function gf
to this Or
's Good
value if it is a Good
,
or by applying bf
to this Or
's Bad
value if it is a Bad
.
Transforms this Or
by applying the function gf
to this Or
's Good
value if it is a Good
,
or by applying bf
to this Or
's Bad
value if it is a Bad
.
the function to apply to this Or
's Good
value, if it is a Good
the function to apply to this Or
's Bad
value, if it is a Bad
the result of applying the appropriate one of the two passed functions, gf
or bf, to this Or
's value
Currently just forwards to filter, and therefore, returns the same result.
Currently just forwards to filter, and therefore, returns the same result.
The asOr
method has been deprecated and will be removed in a future version of Scalactic.
Please remove invocations of asOr
in expressions of type Good(value).orBad[Type]
and
Good[Type].orBad(value)
(which now return a type already widened to Or
), otherwise please
use a type annotation to widen the type, such as: (Good(3): Int Or ErrorMessage)
.
The asOr
method has been deprecated and will be removed in a future version of Scalactic.
Please remove invocations of asOr
in expressions of type Good(value).orBad[Type]
and
Good[Type].orBad(value)
(which now return a type already widened to Or
), otherwise please
use a type annotation to widen the type, such as: (Good(3): Int Or ErrorMessage)
.
The asOr is no longer needed because Good(value).orBad[Type] and Good[Type].orBad(value) now return Or. You can delete invocations of asOr in those cases, otherwise, please use a type annotation to widen the type, like (Good(3): Int Or ErrorMessage).
Contains a “good” value.
You can decide what “good” means, but it is expected
Good
will be commonly used to hold valid results for processes that may fail with an error instead of producing a valid result.the “good” value


Open
×
Name
Please enter name.
Email
Please enter valid email id!
College Name
Please provide a college name.
Enroll No.
Please provide a valid enroll no.!
Submit


| Decision ID: | |
| Description: | |
| Status code: | |
| Collected: | |
| Finished: | |
| Command: |
No hosts? Deploy an agent first.
| Host paw print | Checks | Groups | Executor | Last seen | |
|---|---|---|---|---|---|
| {{ h.paw }} | {{ h.checks }} | {% for g in groups %} {% for ga in g.agents %} {% if ga.agent_id == h.id %} {{ g.name }} {% endif %} {% endfor %} {% endfor %} | {{ h.executor }} | {{ h.last_seen }} |
View, add or update techniques
Ability ID: |
|
ATT&CK Tactic: |
|
ATT&CK Technique ID: |
|
ATT&CK Technique Name: |
|
Name: |
|
Description: |
|
Command: |
|
Requires: |
|
Unlocks: |
Add or view adversary profiles
View or add new operations
| Decision ID: | |
| Description: | |
| Status code: | |
| Collected: | |
| Finished: | |
| Command: |
Raw shell output from decisions


Order {{order.clientId}}/{{order.bookId}}
Client {{order.clientName}} bought the book titled {{order.bookTitle}}.
Client:
{{client.name}}
Book:
{{book.title}}
Back
Save
Delete


Say Hello to
AppKit
Explore endless possibilties
like never seen before on Mobile.
Appkit Is
PWA Ready
Add it to your Home Screen
Use it like a Native Application.
Lights off with
Dark Mode
Add it to your Home Screen
Use it like a Native Application.
Familiar Code
Bootstrap
Code you understand
made easy to customise.
Go Mobile Today
With Appkit
It's the Best Mobile
Website on Envato Market.


ABOUT ME
RITA ILCHENKO
Digital
geo-portraits
Multimedia
fleeting
manifesto
UL/UX
next app
UL/UX
collection
template
Print
portrait
painting technique
Digital
monogram


module Real: Owl_dense_real
type
mat = Gsl.Matrix.matrix
Type of dense matrices. It is defined as Gsl.Matrix.matrix
which is
essentially a two dimensional array in Bigarray
module.
Create dense matrices
val empty : int -> int -> mat
empty m n
creates an m
by n
matrix without initialising the values of
elements in x
.
val create : int -> int -> float -> mat
create m n a
creates an m
by n
matrix and all the elements of x
are
initialised with the value a
.
val zeros : int -> int -> mat
zeros m n
creates an m
by n
matrix where all the elements are
initialised to zeros.
val ones : int -> int -> mat
ones m n
creates an m
by n
matrix where all the elements are ones.
val eye : int -> mat
eye m
creates an m
by m
identity matrix.
val sequential : int -> int -> mat
sequential m n
creates an m
by n
matrix. The elements in x
are
initialised sequentiallly from 0
to (m * n - 1)
.
val uniform_int : ?a:int -> ?b:int -> int -> int -> mat
uniform ~a ~b m n
creates an m
by n
matrix where all the elements
follow a uniform distribution in [a, b]
interval. By default, a = 0
and
b = 100
.
val uniform : ?scale:float -> int -> int -> mat
uniform m n
creates an m
by n
matrix where all the elements
follow a uniform distribution in (0,1)
interval. uniform ~scale:a m n
adjusts the interval to (0,a)
.
val gaussian : ?sigma:float -> int -> int -> mat
gaussian m n
creates an m
by n
matrix where all the elements in x
follow a Gaussian distribution with specified sigma. By default sigma = 1
.
val semidef : int -> mat
semidef n
returns an random n
by n
positive semi-definite matrix.
Dense vectors and meshgrids
val vector : int -> mat
vector m
returns an 1
by m
row vector x
without initialising the
values in x
.
val vector_zeros : int -> mat
vector_zeros m
returns an 1
by m
row vector x
by initialising the
all values in x
to zeros.
val vector_ones : int -> mat
vector_ones m
returns an 1
by m
row vector x
by initialising the
all values in x
to ones.
val vector_uniform : int -> mat
vector_zeros m
returns an 1
by m
row vector x
and the values are
drawn from the interval (0,1)
with a uniform distribution.
val linspace : float -> float -> int -> mat
linspace a b n
linearly divides the interval [a,b]
into n
pieces by
creating an m
by 1
row vector. E.g., linspace 0. 5. 5
will create a
row vector [0;1;2;3;4;5]
.
val meshgrid : float ->
float ->
float -> float -> int -> int -> mat * mat
meshgrid a1 b1 a2 b2 n1 n2
is similar to the meshgrid
function in
Matlab. It returns two matrices x
and y
where the row vectors in x
are
linearly spaced between [a1,b1]
by n1
whilst the column vectors in y
are linearly spaced between (a2,b2)
by n2
.
val meshup : mat ->
mat -> mat * mat
meshup x y
creates mesh grids by using two row vectors x
and y
.
Obtain the basic properties of a matrix
val shape : mat -> int * int
If x
is an m
by n
matrix, shape x
returns (m,n)
, i.e., the size
of two dimensions of x
.
val row_num : mat -> int
row_num x
returns the number of rows in matrix x
.
val col_num : mat -> int
col_num x
returns the number of columns in matrix x
.
val numel : mat -> int
numel x
returns the number of elements in matrix x
. It is equivalent
to (row_num x) * (col_num x)
.
val same_shape : mat -> mat -> bool
same_shape x y
returns true
if two matrics have the same shape.
val reshape : int -> int -> mat -> mat
reshape m n x
creates a new m
by n
matrix from the m'
by n'
matrix x
. Note that (m * n)
must be equal to (m' * n')
.
Manipulate a matrix
val get : mat -> int -> int -> float
get x i j
returns the value of element (i,j)
of x
. The shorthand
for get x i j
is x.{i,j}
val set : mat -> int -> int -> float -> unit
set x i j a
sets the element (i,j)
of x
to value a
. The shorthand
for set x i j a
is x.{i,j} <- a
val row : mat -> int -> mat
row x i
returns the row i
of x
.
val col : mat -> int -> mat
col x j
returns the column j
of x
.
val rows : mat -> int array -> mat
rows x a
returns the rows (defined in an int array a
) of x
. The
returned rows will be combined into a new dense matrix. The order of rows in
the new matrix is the same as that in the array a
.
val cols : mat -> int array -> mat
Similar to rows
, cols x a
returns the columns (specified in array a
)
of x in a new dense matrix.
val clone : mat -> mat
clone x
returns a copy of matrix x
.
val copy_to : mat -> mat -> unit
copy_to x y
copies the elements of x
to y
. x
and y
must have
the same demensions.
val copy_row_to : mat -> mat -> int -> unit
copy_row_to v x i
copies an 1
by n
row vector v
to the i
th row
in an m
by n
matrix x
.
val copy_col_to : mat -> mat -> int -> unit
copy_col_to v x j
copies an 1
by n
column vector v
to the j
th
column in an m
by n
matrix x
.
val concat_vertical : mat -> mat -> mat
concat_vertical x y
concats two matrices x
and y
vertically,
therefore their column numbers must be the same.
val concat_horizontal : mat -> mat -> mat
concat_horizontal x y
concats two matrices x
and y
horizontally,
therefore their row numbers must be the same.
val transpose : mat -> mat
transpose x
transposes an m
by n
matrix to n
by m
one.
val diag : mat -> mat
diag x
returns the diagonal elements of x
.
val trace : mat -> float
trace x
returns the sum of diagonal elements in x
.
val add_diag : mat -> float -> mat
add_diag x a
adds a constant a
to all the diagonal elements in x
.
val replace_row : mat -> mat -> int -> mat
replace_row v x i
uses the row vector v
to replace the i
th row in
the matrix x
.
val replace_col : mat -> mat -> int -> mat
replace_col v x j
uses the column vector v
to replace the j
th column
in the matrix x
.
val swap_rows : mat -> int -> int -> mat
swap_rows x i i'
swaps the row i
with row i'
of x
.
val swap_cols : mat -> int -> int -> mat
swap_cols x j j'
swaps the column j
with column j'
of x
.
Iterate elements, columns, and rows.
val iteri : (int -> int -> float -> unit) -> mat -> unit
iteri f x
iterates all the elements in x
and applies the user defined
function f : int -> int -> float -> 'a
. f i j v
takes three parameters,
i
and j
are the coordinates of current element, and v
is its value.
val iter : (float -> unit) -> mat -> unit
iter f x
is the same as as iteri f x
except the coordinates of the
current element is not passed to the function f : float -> 'a
val mapi : (int -> int -> float -> float) -> mat -> mat
mapi f x
maps each element in x
to a new value by applying
f : int -> int -> float -> float
. The first two parameters are the
coordinates of the element, and the third parameter is the value.
val map : (float -> float) -> mat -> mat
map f x
is similar to mapi f x
except the coordinates of the
current element is not passed to the function f : float -> float
val fold : ('a -> float -> 'a) -> 'a -> mat -> 'a
fold f a x
folds all the elements in x
with the function
f : 'a -> float -> 'a
. For an m
by n
matrix x
, the order of folding
is from (0,0)
to (m-1,n-1)
, row by row.
val filteri : (int -> int -> float -> bool) -> mat -> (int * int) array
filteri f x
uses f : int -> int -> float -> bool
to filter out certain
elements in x
. An element will be included if f
returns true
. The
returned result is a list of coordinates of the selected elements.
val filter : (float -> bool) -> mat -> (int * int) array
Similar to filteri
, but the coordinates of the elements are not passed to
the function f : float -> bool
.
val iteri_rows : (int -> mat -> unit) -> mat -> unit
iteri_rows f x
iterates every row in x
and applies function
f : int -> mat -> unit
to each of them.
val iter_rows : (mat -> unit) -> mat -> unit
Similar to iteri_rows
except row number is not passed to f
.
val iteri_cols : (int -> mat -> unit) -> mat -> unit
iteri_cols f x
iterates every column in x
and applies function
f : int -> mat -> unit
to each of them. Column number is passed to f
as
the first parameter.
val iter_cols : (mat -> unit) -> mat -> unit
Similar to iteri_cols
except col number is not passed to f
.
val filteri_rows : (int -> mat -> bool) -> mat -> int array
filteri_rows f x
uses function f : int -> mat -> bool
to check each
row in x
, then returns an int array containing the indices of those rows
which satisfy the function f
.
val filter_rows : (mat -> bool) -> mat -> int array
Similar to filteri_rows
except that the row indices are not passed to f
.
val filteri_cols : (int -> mat -> bool) -> mat -> int array
filteri_cols f x
uses function f : int -> mat -> bool
to check each
column in x
, then returns an int array containing the indices of those
columns which satisfy the function f
.
val filter_cols : (mat -> bool) -> mat -> int array
Similar to filteri_cols
except that the column indices are not passed to f
.
val fold_rows : ('a -> mat -> 'a) -> 'a -> mat -> 'a
fold_rows f a x
folds all the rows in x
using function f
. The order
of folding is from the first row to the last one.
val fold_cols : ('a -> mat -> 'a) -> 'a -> mat -> 'a
fold_cols f a x
folds all the columns in x
using function f
. The
order of folding is from the first column to the last one.
val mapi_rows : (int -> mat -> 'a) -> mat -> 'a array
mapi_rows f x
maps every row in x
to a type 'a
value by applying
function f : int -> mat -> 'a
to each of them. The results is an array of
all the returned values.
val map_rows : (mat -> 'a) -> mat -> 'a array
Similar to mapi_rows
except row number is not passed to f
.
val mapi_cols : (int -> mat -> 'a) -> mat -> 'a array
mapi_cols f x
maps every column in x
to a type 'a
value by applying
function f : int -> mat -> 'a
.
val map_cols : (mat -> 'a) -> mat -> 'a array
Similar to mapi_cols
except column number is not passed to f
.
val mapi_by_row : ?d:int ->
(int -> mat -> mat) ->
mat -> mat
mapi_by_row f x
applies f
to each row of x
, then uses the returned
row vectors to assemble a new matrix.
val map_by_row : ?d:int ->
(mat -> mat) ->
mat -> mat
map_by_row f x i
is similar to mapi_by_row
except that the row indices
are not passed to f
.
val mapi_by_col : ?d:int ->
(int -> mat -> mat) ->
mat -> mat
mapi_by_col f x
applies f
to each column of x
, then uses the returned
column vectors to assemble a new matrix.
val map_by_col : ?d:int ->
(mat -> mat) ->
mat -> mat
map_by_col f x i
is similar to mapi_by_col
except that the column
indices are not passed to f
.
val mapi_at_row : (int -> int -> float -> float) ->
mat -> int -> mat
mapi_at_row f x i
creates a new matrix by applying function f
only to
the i
th row in matrix x
.
val map_at_row : (float -> float) -> mat -> int -> mat
map_at_row f x i
is similar to mapi_at_row
except that the coordinates
of an element is not passed to f
.
val mapi_at_col : (int -> int -> float -> float) ->
mat -> int -> mat
mapi_at_col f x j
creates a new matrix by applying function f
only to
the j
th column in matrix x
.
val map_at_col : (float -> float) -> mat -> int -> mat
map_at_col f x i
is similar to mapi_at_col
except that the coordinates
of an element is not passed to f
.
Examine the elements in a matrix
val exists : (float -> bool) -> mat -> bool
exists f x
checks all the elements in x
using f
. If at least one
element satisfies f
then the function returns true
otherwise false
.
val not_exists : (float -> bool) -> mat -> bool
not_exists f x
checks all the elements in x
, the function returns
true
only if all the elements fail to satisfy f : float -> bool
.
val for_all : (float -> bool) -> mat -> bool
for_all f x
checks all the elements in x
, the function returns true
if and only if all the elements pass the check of function f
.
Compare two matrices
val is_equal : mat -> mat -> bool
is_equal x y
returns true
if two matrices x
and y
are equal.
val is_unequal : mat -> mat -> bool
is_unequal x y
returns true
if there is at least one element in x
is
not equal to that in y
.
val is_greater : mat -> mat -> bool
is_greater x y
returns true
if all the elements in x
are greater than
the corresponding elements in y
.
val is_smaller : mat -> mat -> bool
is_smaller x y
returns true
if all the elements in x
are smaller than
the corresponding elements in y
.
val equal_or_greater : mat -> mat -> bool
equal_or_greater x y
returns true
if all the elements in x
are not
smaller than the corresponding elements in y
.
val equal_or_smaller : mat -> mat -> bool
equal_or_smaller x y
returns true
if all the elements in x
are not
greater than the corresponding elements in y
.
Basic mathematical operations of matrices
val add : mat -> mat -> mat
add x y
adds two matrices x
and y
. Both must have the same dimensions.
val sub : mat -> mat -> mat
sub x y
subtracts the matrix x
from y
. Both must have the same dimensions.
val mul : mat -> mat -> mat
mul x y
performs an element-wise multiplication, so both x
and y
must have the same dimensions.
val div : mat -> mat -> mat
div x y
performs an element-wise division, so both x
and y
must have the same dimensions.
val dot : mat -> mat -> mat
dot x y
calculates the dot product of an m
by n
matrix x
and
another n
by p
matrix y
.
val abs : mat -> mat
abs x
returns a new matrix where each element has the absolute value of
that in the original matrix x
.
val neg : mat -> mat
neg x
returns a new matrix where each element has the negative value of
that in the original matrix x
.
val power : mat -> float -> mat
power x a
calculates the power of a
of each element in x
.
val add_scalar : mat -> float -> mat
add_scalar x a
adds every element in x
by a constant factor a
.
val sub_scalar : mat -> float -> mat
sub_scalar x a
subtracts every element in x
by a constant factor a
.
val mul_scalar : mat -> float -> mat
mul_scalar x a
multiplies every element in x
by a constant factor a
.
val div_scalar : mat -> float -> mat
div_scalar x a
divides every element in x
by a constant factor a
.
val sum : mat -> float
sum x
returns the summation of all the elements in x
.
val average : mat -> float
average x
returns the average value of all the elements in x
. It is
equivalent to calculate sum x
divided by numel x
val min : mat -> float * int * int
min x
returns the minimum value of all elements in x
.
val max : mat -> float * int * int
max x
returns the maximum value of all elements in x
.
val minmax : mat -> float * float * int * int * int * int
minmax x
returns both the minimum and minimum values in x
.
val is_zero : mat -> bool
is_zero x
returns true
if all the elements in x
are zeros.
val is_positive : mat -> bool
is_positive x
returns true
if all the elements in x
are positive.
val is_negative : mat -> bool
is_negative x
returns true
if all the elements in x
are negative.
val is_nonnegative : mat -> bool
is_nonnegative
returns true
if all the elements in x
are non-negative.
val log : mat -> mat
log x
applies log
function to each element in matrix x
.
val log10 : mat -> mat
log10 x
applies log10
function to each element in matrix x
.
val exp : mat -> mat
exp x
applies exp
function to each element in matrix x
.
val sigmoid : mat -> mat
sigmoid x
applies sigmoid
function to each element in matrix x
.
val sum_rows : mat -> mat
sum_rows x
returns the summation of all the row vectors in x
.
val sum_cols : mat -> mat
sum_cols
returns the summation of all the column vectors in x
.
val average_rows : mat -> mat
average_rows x
returns the average value of all row vectors in x
. It is
equivalent to div_scalar (sum_rows x) (float_of_int (row_num x))
.
val average_cols : mat -> mat
average_cols x
returns the average value of all column vectors in x
.
It is equivalent to div_scalar (sum_cols x) (float_of_int (col_num x))
.
val min_rows : mat -> (float * int * int) array
min_rows x
returns the minimum value in each row along with their coordinates.
val min_cols : mat -> (float * int * int) array
min_cols x
returns the minimum value in each column along with their coordinates.
val max_rows : mat -> (float * int * int) array
max_rows x
returns the maximum value in each row along with their coordinates.
val max_cols : mat -> (float * int * int) array
min_cols x
returns the minimum value in each column along with their coordinates.
Randomisation functions
val draw_rows : ?replacement:bool ->
mat -> int -> mat * int array
draw_rows x m
draws m
rows randomly from x
. The row indices are also
returned in an int array along with the selected rows. The parameter
replacement
indicates whether the drawing is by replacement or not.
val draw_cols : ?replacement:bool ->
mat -> int -> mat * int array
draw_cols x m
draws m
cols randomly from x
. The column indices are
also returned in an int array along with the selected columns. The parameter
replacement
indicates whether the drawing is by replacement or not.
val shuffle_rows : mat -> mat
shuffle_rows x
shuffles all the rows in matrix x
.
val shuffle_cols : mat -> mat
shuffle_cols x
shuffles all the columns in matrix x
.
val shuffle : mat -> mat
shuffle x
shuffles all the elements in x
by first shuffling along the
rows then shuffling along columns. It is equivalent to shuffle_cols (shuffle_rows x)
.
val to_array : mat -> float array
to_array x
flattens an m
by n
matrix x
then returns x
as an
float array of length (numel x)
.
val to_arrays : mat -> float array array
to arrays x
returns an array of float arrays, wherein each row in x
becomes an array in the result.
val of_array : float array -> int -> int -> mat
of_array x m n
converts a float array x
into an m
by n
matrix. Note the
length of x
must be equal to (m * n)
.
val of_arrays : float array array -> mat
of_arrays x
converts an array of m
float arrays (of length n
) in to
an m
by n
matrix.
val print : mat -> unit
print x
pretty prints matrix x
without headings.
val pp_dsmat : mat -> unit
pp_spmat x
pretty prints matrix x
with headings. Toplevel uses this
function to print out the matrices.
val save : mat -> string -> unit
save x f
saves the matrix x
to a file with the name f
. The format
is binary by using Marshal
module to serialise the matrix.
val load : string -> mat
load f
loads a sparse matrix from file f
. The file must be previously
saved by using save
function.
val save_txt : mat -> string -> unit
save_txt x f
save the matrix x
into a text file f
. The operation can
be very time consuming.
val load_txt : string -> mat
load_txt f
load a text file f
into a matrix.
Shorhand infix operators
val (>>) : mat -> mat -> unit
Shorthand for copy_to x y
, i.e., x >> y
val (<<) : mat -> mat -> unit
Shorthand for copy_to y x
, i.e., x << y
val (@=) : mat -> mat -> mat
Shorthand for concat_vertical x y
, i.e., x @= y
val (@||) : mat -> mat -> mat
Shorthand for concat_horizontal x y
, i.e., x @|| y
val (+@) : mat -> mat -> mat
Shorthand for add x y
, i.e., x +@ y
val (-@) : mat -> mat -> mat
Shorthand for sub x y
, i.e., x -@ y
val ( *@ ) : mat -> mat -> mat
Shorthand for mul x y
, i.e., x *@ y
val (/@) : mat -> mat -> mat
Shorthand for div x y
, i.e., x /@ y
val ($@) : mat -> mat -> mat
Shorthand for dot x y
, i.e., x $@ y
val ( **@ ) : mat -> float -> mat
Shorthand for power x a
, i.e., x **@ a
val (+$) : mat -> float -> mat
Shorthand for add_scalar x a
, i.e., x +$ a
val (-$) : mat -> float -> mat
Shorthand for sub_scalar x a
, i.e., x -$ a
val ( *$ ) : mat -> float -> mat
Shorthand for mul_scalar x a
, i.e., x *$ a
val (/$) : mat -> float -> mat
Shorthand for div_scalar x a
, i.e., x /$ a
val ($+) : float -> mat -> mat
Shorthand for add_scalar x a
, i.e., a $+ x
val ($-) : float -> mat -> mat
Shorthand for sub_scalar x a
, i.e., a -$ x
val ( $* ) : float -> mat -> mat
Shorthand for mul_scalar x a
, i.e., x $* a
val ($/) : float -> mat -> mat
Shorthand for div_scalar x a
, i.e., x $/ a
val (=@) : mat -> mat -> bool
Shorthand for is_equal x y
, i.e., x =@ y
val (>@) : mat -> mat -> bool
Shorthand for is_greater x y
, i.e., x >@ y
val (<@) : mat -> mat -> bool
Shorthand for is_smaller x y
, i.e., x <@ y
val (<>@) : mat -> mat -> bool
Shorthand for is_unequal x y
, i.e., x <>@ y
val (>=@) : mat -> mat -> bool
Shorthand for equal_or_greater x y
, i.e., x >=@ y
val (<=@) : mat -> mat -> bool
Shorthand for equal_or_smaller x y
, i.e., x <=@ y
val (@@) : (float -> float) -> mat -> mat
Shorthand for map f x
, i.e., f @@ x


SECRETS OF SILICON VALLEY A film review by Steve Rhodes Copyright 2001 Steve Rhodes RATING (0 TO ****): ** 1/2
Deborah Kaufman and Alan Snitow's SECRETS OF SILICON VALLEY tries without much luck to be a hard-hitting exposť of the plight of low income workers in the Silicon Valley. A frustrating film, it is more memorable for its unasked questions than for the answers it receives.
Typical of the unchallenged assertions is the one that the reason that unions have had almost no success in the Silicon Valley is that the unions are afraid of the big corporations. General Motors is no mom-and-pop operation, and the union has had tremendous success organizing its workers in Michigan. Could it be instead that assembly line workers here in the Silicon Valley generally like their jobs and are happy to have them? (I have a close relative who works on a high tech assembly line. She likes her job and is only frustrated on the days when there isn't enough to do.)
The documentary, which is told without narration, interviews two main subjects, Magda Escobar and Raj Jayadev. Escobar runs a non-profit computer training center in East Palo Alto. Although she worries about the digital divide between the rich and poor, the filmmakers concentrate much of the time on her thoughts on the changes in the poor town of East Palo Alto, where new stores from Home Depot to McDonalds are changing the business landscape. The savviest thing that Escobar does is to create a giant mural outside her group's new facility. When President Clinton wants just the right photo op, his team picks it for one of his pop-in-and-pop-out visits. Jessie Jackson shows up too, so that he can be part of the group which seems to be more media than public.
In the more controversial part, Jayadev, an employee of Manpower who works on temporary assignment at HP, talks about alleged health and safety issues on the printer packaging assembly line. After circulating a petition among his fellow workers, he is let go by Manpower, a dismissal which he claims was because of his safety issues complaints. Whether any of his assertions have merit, we have little idea since he is the only one interviewed about them.
Interspersed with the interviews of these two principals, the documentary shows footage of the famous Sand Hill Challenge, a soap box derby of sorts for venture capital firms and high tech companies. Escobar's company partners with a VC firm on one of the cars. Also included is stock television news footage of various technology leaders like Carly Fiorina, HP's CEO. "This is a growth industry, and there is no end to the growth in sight," she tells the camera. Well, no end, but lots of hiccups along the way as we have so recently been reminded as the economy as gone into a stall.
A documentary should teach or provoke, preferably both. It is hard to figure out what SECRETS OF SILICON VALLEY has to say to us that we didn't already know. Jayadev does rile us up some, but mainly because the filmmakers don't challenge him more or ask some pointed question to those he is accusing.
SECRETS OF SILICON VALLEY runs 1:00. It is not rated but would be a G and acceptable for all ages.
Web: <http://www.InternetReviews.com>
Email<EMAIL_ADDRESS>Want free reviews and weekly movie and video recommendations via Email? Just send me a letter with the word "subscribe" in the subject line.
========== X-RAMR-ID: 28778 X-RT-AuthorID: 1271 X-RT-RatingText: 2.5/4
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Launching Our Demo Music Observatory
Today, on 15 September 2020, we officially launched our minimal viable product
as we promised to partners back in February. This was a particularly difficult period for everybody. We aspired to deliver by September in a very different environment, our hopes for commissioned work went up in flames with the pandemic, and our targeted users, musicians and music entrepreneurs, talent managers, music venues lost most of their income. The organizations helping them, granting authorities, export offices and collective management societies are overwhelmed with the problem. During these troublesome times, our team expanded, attracted great new talent, and kept working.
Our first product is the Demo Music Observatory, a collaborative, automated research-based observatory for the music industry, one that is particularly hard hit by the COVID19 crisis. Not only great artists, composers, technicians, managers fell victim to the virus, but musicians lost about 50–90% of their income from live music. This translates to a 100% loss for the live music technicians and managers.
See our earlier blogpost on what you see on the video.
The music industry was never a place for great job security. For putting up a show, you usually need a network of 10–200 artists, technicians and managers to work together as freelancers without all those social benefits that many people enjoy in other walks of life. We have been trying to figure out how to help this microenterprise and freelancer-network based industry with research for five years. Our aim is to make them competitive when they are talking with their buyers: Google, Apple, Spotify, who are really heavy-weight data and AI pros. Our better plan their tours, when they will be back on the road, to understand what sort of audiences and purchasing power waits for them in different European cities.
We are launching at a time when the music industry is crying for help.Therefore, we have decided to make our demo observatory open and unfinished. Over the last 7 years, we have built up about 2000 music and creative sector indicators to be used for business KPIs, forecasting targets, grant evaluations, royalty valuations, concert demography target group analysis and other professional uses. We would like to open up, based on your needs, about 50 well-designed indicators, and pledge to keep it daily refreshed, corrected, documented, citaable, downloadable. Also, feel free to use our most valuable source code—use it for your own purposes, even modify it, as long as you keep it open.
For our smaller partners, we follow what musicians do these days on Bandcamp: name your price. We make a pledge to our small partners: if you need reliable data to plan your next grant calls, calculate royalties, compensations, predict hit candidates, give us the job—and name your price. Post-corona, you can take for a dollar the best music from Bandcamp. You can take our research products, for a limited period, for any amount you name, as long as it is for a good cause and serves the industry, musicians, technicians or managers. In return, we ask for your feedback. Help us validate whether we are on the right track, tell us how we can cooperate after the pandemic, in better times.
Our larger and better funded partners? We ask you to pay the price we name, because we believe that it is a well-justified, fair and competitive price, set by pricing experts.
We appreciate it if you take a look at our offering, or if you pass this blogpost on to your colleagues in the industry. Our main target audience initially are music professional in broader Europe, but we are planning to cover all major global markets very soon, too. Feedback from the U.S., Australia, Canada, Colombia, Brazil & Argentina is particularly welcome as we have great plans over there!
Who we are?
We started our operations on 1 September 2020 on the basis of CEEMID, a pan-European data observatory that created about 2000 music and creative industry indicators for its users. In the coming days, we are gradually opening up about 50 music industry and 50 broader creative industry indicators in a fully reproducible workflow, with daily re-freshed, re-processed, well-formatted and documented indicators for business and policy decisions.
We would like to validate this approach in one of the world’s most prestigious university-backed incubator programs, in the Yes!Delft AI/Blockchain Validation Lab. We’re finalist on their selection, and all help before 23 September from our friends in the music industry is more than appreciated. If we get there, we can rely on probably the best pros in Europe to make our offering better tailored and financially sustainable.
Get in touch!
We use the very simple and extremely secure keybase.io, a kind of mix of Whatsapp, Skype, Google Drive, One Drive and zoom. You can get in touch on that platform with us in anytime here.
You can easily contact on LinkedIn Daniel or Kátya and of course, we have a usually working email contact form, too. Our email is name.surname at our main domain.
Video credits
- Data acquisition and processing: Daniel Antal, CFA and Marta Kołczyńska, PhD ( survey data).
- Documentation automation: Sandor Budai
- Video art: Line Matson
- Music: Moon Moon Moon.