*1.3.1* (April 6th, 2005)
- Clean paths inside of exception messages and traces. [Nicholas Seckar]
- Add Pathname.clean_within for cleaning all the paths inside of a string. [Nicholas Seckar]
- provide an empty Dependencies::LoadingModule.load which prints deprecation warnings. Lets 1.0 applications function with .13-style environment.rb.
*1.3.0* (March 27th, 2005)
- When possible, avoid incorrectly obtaining constants from parent modules. Fixes 4221. [Nicholas Seckar]
- Add more tests for dependencies; refactor existing cases. [Nicholas Seckar]
- Move Module#parent and Module#as_load_path into core_ext. Add Module#parent. [Nicholas Seckar]
- Add CachingTools::HashCaching to simplify the creation of nested, autofilling hashes. [Nicholas Seckar]
- Remove a hack intended to avoid unloading the same class twice, but which would not work anyways. [Nicholas Seckar]
- Update Object.subclasses_of to locate nested classes. This affects Object.remove_subclasses_of in that nested classes will now be unloaded. [Nicholas Seckar]
- Update Object.remove_subclasses_of to use Class.remove_class, reducing duplication. [Nicholas Seckar]
- Added Fixnum#seconds for consistency, so you can say 5.minutes + 30.seconds instead of 5.minutes + 30 4389 [François Beausoleil]
- Added option to String#camelize to generate lower-cased camel case by passing in :lower, like "super_man".camelize(:lower) # => "superMan" [DHH]
- Added Hash#diff to show the difference between two hashes [Chris McGrath]
- Added Time#advance to do precise time time calculations for cases where a month being approximated to 30 days won’t do 1860 [Rick Olson]
- Enhance Inflector.underscore to convert ’-’ into ‘_’ (as the inverse of Inflector.dasherize) [Jamis Buck]
- Switched to_xml to use the xml schema format for datetimes. This allows the encoding of time zones and should improve operability. [Koz]
- Added a note to the documentation for the Date related Numeric extensions to indicate that they’re
approximations and shouldn’t be used for critical calculations. [Koz]
- Added Hash#to_xml and Array#to_xml that makes it much easier to produce XML
from basic structures [DHH]. Examples:
{ :name => "David", :street_name => "Paulina", :age => 26, :moved_on => Date.new(2005, 11, 15) }.to_xml
…returns:
<person> <street-name>Paulina</street-name> <name>David</name> <age type="integer">26</age> <moved-on type="date">2005-11-15</moved-on> </person>
- Moved Jim Weirich’s wonderful Builder from Action Pack to Active Support (it’s simply too useful to be stuck in AP) [DHH]
- Fixed that Array#to_sentence will return "" on an empty array instead of ", and" 3842, 4031<EMAIL_ADDRESS>- Add Enumerable#group_by for grouping collections based on the result of
some block. Useful, for example, for grouping records by date.
ex.
latest_transcripts.group_by(&:day).each do |day, transcripts| p "#{day} -> #{transcripts.map(&:class) * ', '}" end "2006-03-01 -> Transcript" "2006-02-28 -> Transcript" "2006-02-27 -> Transcript, Transcript" "2006-02-26 -> Transcript, Transcript"
Add Array#in_groups_of, for iterating over an array in groups of a certain size.
ex.
%w(1 2 3 4 5 6 7).in_groups_of(3) {|g| p g} ["1", "2", "3"] ["4", "5", "6"] ["7", nil, nil]
[Marcel Molina Jr., Sam Stephenson]
- Added Kernel#daemonize to turn the current process into a daemon that can be killed with a TERM signal [DHH]
- Add ‘around’ methods to Logger, to make it easy to log before
and after messages for a given block as requested in 3809. [Michael
Koziarski] Example:
logger.around_info("Start rendering component (#{options.inspect}): ",
"\n\nEnd of component rendering") { yield }
- Added Time#beginning_of_quarter 3607<EMAIL_ADDRESS>- Fix Object.subclasses_of to only return currently defined objects [Jonathan Viney<EMAIL_ADDRESS>- Fix constantize to properly handle names beginning with ’::’. [Nicholas Seckar]
- Make String#last return the string instead of nil when it is shorter than the limit [Scott Barron].
- Added delegation support to Module that allows multiple delegations at once
(unlike Forwardable in the stdlib) [DHH]. Example:
class Account < ActiveRecord::Base has_one :subscription delegate :free?, :paying?, :to => :subscription delegate :overdue?, :to => "subscription.last_payment" end account.free? # => account.subscription.free? account.overdue? # => account.subscription.last_payment.overdue?
- Fix Reloadable to handle the case where a class that has been ‘removed’ has not yet been garbage collected. [Nicholas Seckar]
- Don‘t allow Reloadable to be included into Modules.
- Remove LoadingModule. [Nicholas Seckar]
- Add documentation for Reloadable::Subclasses. [Nicholas Seckar]
- Add Reloadable::Subclasses which handles the common case where a base class should not be reloaded, but its subclasses should be. [Nicholas Seckar]
- Further improvements to reloading code [Nicholas Seckar, Trevor Squires]
- All classes/modules which include Reloadable can define reloadable? for fine grained control of reloading
- Class.remove_class uses Module#parent to access the parent module
- Class.remove_class expanded to handle multiple classes in a single call
- LoadingModule.clear! has been removed as it is no longer required
- Module#remove_classes_including has been removed in favor of Reloadable.reloadable_classes
- Added reusable reloading support through the inclusion of the Relodable
module that all subclasses of ActiveRecord::Base,
ActiveRecord::Observer,
ActiveController::Base, and ActionMailer::Base
automatically gets. This means that these classes will be reloaded by the
dispatcher when Dependencies.mechanism = :load. You can make your own
models reloadable easily:
class Setting include Reloadable end
Reloading a class is done by removing its constant which will cause it to be loaded again on the next reference. [DHH]
- Added auto-loading support for classes in modules, so Conductor::Migration will look for conductor/migration.rb and Conductor::Database::Settings will look for conductor/database/settings.rb [Nicholas Seckar]
- Add Object#instance_exec, like instance_eval but passes its arguments to the block. (Active Support will not override the Ruby 1.9 implementation of this method.) [Sam Stephenson]
- Add Proc#bind(object) for changing a proc or block’s self by returning a Method bound to the given object. Based on why the lucky stiff’s "cloaker" method. [Sam Stephenson]
- Fix merge and dup for hashes with indifferent access 3404<EMAIL_ADDRESS>- Fix the requires in option_merger_test to unbreak AS tests. [Sam Stephenson]
- Make HashWithIndifferentAccess#update behave like Hash#update by returning the hash. 3419, 3425<EMAIL_ADDRESS><EMAIL_ADDRESS>Marcel Molina Jr.]
- Add ActiveSupport::JSON and Object#to_json for converting Ruby objects to JSON strings. [Sam Stephenson]
- Add Object#with_options for DRYing up multiple calls to methods having
shared options. [Sam Stephenson] Example:
ActionController::Routing::Routes.draw do |map|
# Account routes map.with_options(:controller => 'account') do |account| account.home '', :action => 'dashboard' account.signup 'signup', :action => 'new' account.logout 'logout', :action => 'logout' end
end
- Introduce Dependencies.warnings_on_first_load setting. If true, enables warnings on first load of a require_dependency. Otherwise, loads without warnings. Disabled (set to false) by default. [Jeremy Kemper]
- Active Support is warnings-safe. 1792 [Eric Hodel]
- Introduce enable_warnings counterpart to silence_warnings. Turn warnings on when loading a file for the first time if Dependencies.mechanism == :load. Common mistakes such as redefined methods will print warnings to stderr. [Jeremy Kemper]
- Add Symbol#to_proc, which allows for, e.g. [:foo, :bar].map(&:to_s). [Marcel Molina Jr.]
- Added the following methods [Marcel Molina Jr., Sam Stephenson]:
- Object#copy_instance_variables_from(object) to copy instance variables from one object to another
- Object#extended_by to get an instance’s included/extended modules
- Object#extend_with_included_modules_from(object) to extend an instance with the modules from another instance
*1.2.5* (December 13th, 2005)
- Become part of Rails 1.0
- Rename Version constant to VERSION. 2802 [Marcel Molina Jr.]
*1.2.3* (November 7th, 2005)
- Change Inflector#constantize to use eval instead of const_get. [Nicholas Seckar]
- Fix const_missing handler to ignore the trailing ’.rb’ on files when comparing paths. [Nicholas Seckar]
- Define kernel.rb methods in "class Object" instead of "module Kernel" to work around a Windows peculiarity [Sam Stephenson]
- Fix broken tests caused by incomplete loading of active support. [Nicholas Seckar]
- Fix status pluralization bug so status_codes doesn’t get pluralized as statuses_code. 2758<EMAIL_ADDRESS>- Added Kernel#silence_stderr to silence stderr for the duration of the given block [Sam Stephenson]
- Changed Kernel#` to print a message to stderr (like Unix) instead of raising Errno::ENOENT on Win32 [Sam Stephenson]
- Changed 0.blank? to false rather than true since it violates everyone’s expectation of blankness. 2518, 2705<EMAIL_ADDRESS>- When loading classes using const_missing, raise a NameError if and only if the file we tried to load was not present. [Nicholas Seckar]
- Added petabytes and exebytes to numeric extensions 2397<EMAIL_ADDRESS>- Added Time#end_of_month to accompany Time#beginning_of_month 2514 [Jens-Christian Fischer]
*1.2.2* (October 26th, 2005)
- Set Logger.silencer = false to disable Logger#silence. Useful for debugging fixtures.
- Add title case method to String to do, e.g., ‘action_web_service’.titlecase # => ‘Action Web Service’. [Marcel Molina Jr.]
*1.2.1* (October 19th, 2005)
- Classify generated routing code as framework code to avoid appearing in application traces. [Nicholas Seckar]
- Show all framework frames in the framework trace. [Nicholas Seckar]
*1.2.0* (October 16th, 2005)
- Update Exception extension to show the first few framework frames in an application trace. [Nicholas Seckar]
- Added Exception extension to provide support for clean backtraces. [Nicholas Seckar]
- Updated whiny nil to be more concise and useful. [Nicholas Seckar]
- Added Enumerable#first_match [Nicholas Seckar]
- Fixed that Time#change should also reset usec when also resetting minutes 2459<EMAIL_ADDRESS>- Fix Logger compatibility for distributions that don’t keep Ruby and its standard library in sync.
- Replace ’%e’ from long and short time formats as Windows does not support it. 2344. [Tom Ward<EMAIL_ADDRESS>- Added to_s(:db) to Range, so you can get "BETWEEN ‘2005-12-10’ AND ‘2005-12-12’" from Date.new(2005, 12, 10)..Date.new(2005, 12, 12) (and likewise with Times)
- Moved require_library_or_gem into Kernel. 1992 [Michael Schuerig<EMAIL_ADDRESS>- Add :rfc822 as an option for Time#to_s (to get rfc822-formatted times)
- Chain the const_missing hook to any previously existing hook so rails can play nicely with rake
- Clean logger is compatible with both 1.8.2 and 1.8.3 Logger. 2263 [Michael Schuerig<EMAIL_ADDRESS>- Added native, faster implementations of .blank? for the core types 2286 [skae]
- Fixed clean logger to work with Ruby 1.8.3 Logger class 2245
- Fixed memory leak with Active Record classes when Dependencies.mechanism = :load 1704<EMAIL_ADDRESS>- Fixed Inflector.underscore for use with acronyms, so HTML becomes html instead of htm_l 2173<EMAIL_ADDRESS>- Fixed dependencies related infinite recursion bug when a controller file does not contain a controller class. Closes 1760<EMAIL_ADDRESS>- Fixed inflections for status, quiz, move 2056<EMAIL_ADDRESS>- Added Hash#reverse_merge, Hash#reverse_merge!, and Hash#reverse_update to ease the use of default options
- Added Array#to_sentence that’ll turn [‘one’, ‘two’, ‘three’] into "one, two, and three" 2157<EMAIL_ADDRESS>- Added Kernel#silence_warnings to turn off warnings temporarily for the passed block
- Added String#starts_with? and String#ends_with? 2118<EMAIL_ADDRESS>- Added easy extendability to the inflector through Inflector.inflections
(using the Inflector::Inflections
singleton class). Examples:
Inflector.inflections do |inflect| inflect.plural /^(ox)$/i, '\1\2en' inflect.singular /^(ox)en/i, '\1' inflect.irregular 'octopus', 'octopi' inflect.uncountable "equipment" end
- Added String#at, String#from, String#to, String#first, String#last in ActiveSupport::CoreExtensions::String::Access to ease access to individual characters and substrings in a string serving basically as human names for range access.
- Make Time#last_month work when invoked on the 31st of a month.
- Add Time.days_in_month, and make Time#next_month work when invoked on the 31st of a month
- Fixed that Time#midnight would have a non-zero usec on some platforms 1836
- Fixed inflections of "index/indices" 1766<EMAIL_ADDRESS>- Added stripping of _id to String#humanize, so "employee_id" becomes "Employee" 1574 [Justin French]
- Factor Fixnum and Bignum extensions into Integer extensions [Nicholas Seckar]
- Hooked ordinalize into Fixnum and Bignum classes. [Nicholas Seckar, danp]
- Added Fixnum#ordinalize to turn 1.ordinalize to "1st", 3.ordinalize to "3rd", and 10.ordinalize to "10th" and so on 1724<EMAIL_ADDRESS>*1.1.1* (11 July, 2005)
- Added more efficient implementation of the development mode reset of classes 1638 [Chris McGrath]
*1.1.0* (6 July, 2005)
- Fixed conflict with Glue gem 1606 [Rick Olson]
- Added new rules to the Inflector to deal with more unusual plurals mouse/louse => mice/lice, information => information, ox => oxen, virus => viri, archive => archives 1571, 1583, 1490, 1599, 1608<EMAIL_ADDRESS>- Fixed memory leak with Object#remove_subclasses_of, which inflicted a Rails application running in development mode with a ~20KB leak per request 1289<EMAIL_ADDRESS>- Made 1.year == 365.25.days to account for leap years. This allows you to do User.find(:all, :conditions => [‘birthday > ?’, 50.years.ago]) without losing a lot of days. 1488<EMAIL_ADDRESS>- Added an exception if calling id on nil to WhinyNil 584<EMAIL_ADDRESS>- Added Fix/Bignum#multiple_of? which returns true on 14.multiple_of?(7) and false on 16.multiple_of?(7) 1464 [Thomas Fuchs]
- Added even? and odd? to work with Bignums in addition to Fixnums 1464 [Thomas Fuchs]
- Fixed Time#at_beginning_of_week returned the next Monday instead of the previous one when called on a Sunday 1403<EMAIL_ADDRESS>- Increased the speed of indifferent hash access by using Hash#default. 1436 [Nicholas Seckar]
- Added that " " is now also blank? (using strip if available)
- Fixed Dependencies so all modules are able to load missing constants 1173 [Nicholas Seckar]
- Fixed the Inflector to underscore strings containing numbers, so Area51Controller becomes area51_controller 1176 [Nicholas Seckar]
- Fixed that HashWithIndifferentAccess stringified all keys including symbols, ints, objects, and arrays 1162 [Nicholas Seckar]
- Fixed Time#last_year to go back in time, not forward 1278<EMAIL_ADDRESS>- Fixed the pluralization of analysis to analyses 1295<EMAIL_ADDRESS>- Fixed that Time.local(2005,12).months_since(1) would raise "ArgumentError: argument out of range" 1311<EMAIL_ADDRESS>- Added silencing to the default Logger class
*1.0.4* (19th April, 2005)
- Fixed that in some circumstances controllers outside of modules may have hidden ones inside modules. For example, admin/content might have been hidden by /content. 1075 [Nicholas Seckar]
- Fixed inflection of perspectives and similar words 1045<EMAIL_ADDRESS>- Added Fixnum#even? and Fixnum#odd?
- Fixed problem with classes being required twice. Object#const_missing now uses require_dependency to load files. It used to use require_or_load which would cause models to be loaded twice, which was not good for validations and other class methods 971 [Nicholas Seckar]
*1.0.3* (27th March, 2005)
- Fixed Inflector.pluralize to handle capitalized words 932 [Jeremy Kemper]
- Added Object#suppress which allows you to make a saner choice around with
exceptions to swallow 980. Example:
suppress(ZeroDivisionError) { 1/0 }
…instead of:
1/0 rescue nil # BAD, EVIL, DIRTY.
*1.0.2* (22th March, 2005)
- Added Kernel#returning — a Ruby-ized realization of the K combinator,
courtesy of Mikael Brockman.
def foo returning values = [] do values << 'bar' values << 'baz' end end foo # => ['bar', 'baz']
*1.0.1* (7th March, 2005)
- Fixed Hash#indifferent_access to also deal with include? and fetch and nested hashes 726 [Nicholas Seckar]
- Added Object#blank? — see redhanded.hobix.com/inspect/objectBlank.html 783 [_why the lucky stiff]
- Added inflection rules for "sh" words, like "wish" and "fish" 755<EMAIL_ADDRESS>- Fixed an exception when using Ajax based requests from Safari because Safari appends a \000 to the post body. Symbols can’t have \000 in them so indifferent access would throw an exception in the constructor. Indifferent hashes now use strings internally instead. 746 [Tobias Luetke]
- Added String#to_time and String#to_date for wrapping ParseDate
*1.0.0* (24th February, 2005)
- Added TimeZone as the first of a number of value objects that among others Active Record can use rich value objects using composed_of 688 [Jamis Buck]
- Added Date::Conversions for getting dates in different convenient string representations and other objects
- Added Time::Conversions for getting times in different convenient string representations and other objects
- Added Time::Calculations to ask for things like Time.now.tomorrow,
Time.now.yesterday, Time.now.months_ago(4) 580 [DP|Flurin]. Examples:
"Later today" => now.in(3.hours), "Tomorrow morning" => now.tomorrow.change(:hour => 9), "Tomorrow afternoon" => now.tomorrow.change(:hour => 14), "In a couple of days" => now.tomorrow.tomorrow.change(:hour => 9), "Next monday" => now.next_week.change(:hour => 9), "In a month" => now.next_month.change(:hour => 9), "In 6 months" => now.months_since(6).change(:hour => 9), "In a year" => now.in(1.year).change(:hour => 9)
- Upgraded to breakpoint 92 which fixes:
* overload IRB.parse_opts(), fixes #443 => breakpoints in tests work even when running them via rake * untaint handlers, might fix an issue discussed on the Rails ML * added verbose mode to breakpoint_client * less noise caused by breakpoint_client by default * ignored TerminateLineInput exception in signal handler => quiet exit on Ctrl-C
- Fixed Inflector for words like "news" and "series" that are the same in plural and singular 603 [echion], 615 [marcenuc]
- Added Hash#stringify_keys and Hash#stringify_keys!
- Added IndifferentAccess as a way to wrap a hash by a symbol-based store that also can be accessed by string keys
- Added Inflector.constantize to turn "Admin::User" into a reference for the constant Admin::User
- Added that Inflector.camelize and Inflector.underscore can deal with modules like turning "Admin::User" into "admin/user" and back
- Added Inflector.humanize to turn attribute names like employee_salary into "Employee salary". Used by automated error reporting in AR.
- Added availability of class inheritable attributes to the masses 477
[Jeremy Kemper]
class Foo class_inheritable_reader :read_me class_inheritable_writer :write_me class_inheritable_accessor :read_and_write_me class_inheritable_array :read_and_concat_me class_inheritable_hash :read_and_update_me end # Bar gets a clone of (not a reference to) Foo's attributes. class Bar < Foo end Bar.read_and_write_me == Foo.read_and_write_me Bar.read_and_write_me = 'bar' Bar.read_and_write_me != Foo.read_and_write_me
- Added Inflections as an extension on String, so Inflector.pluralize(Inflector.classify(name)) becomes name.classify.pluralize 476 [Jeremy Kemper]
- Added Byte operations to Numeric, so 5.5.megabytes + 200.kilobytes 461 [Marcel Molina]
- Fixed that Dependencies.reload can’t load the same file twice 420 [Kent Sibilev]
- Added Fixnum#ago/until, Fixnum#since/from_now 450 [Jeremy Kemper]
- Added that Inflector now accepts Symbols and Classes by calling .to_s on the word supplied
- Added time unit extensions to Fixnum that’ll return the period in seconds, like 2.days + 4.hours.


Police declare emergency on traffic - The Nation Newspaper
Precious Igbonwelundu
LAGOS Police Commissioner Hakeem Odumosu has declared a state of emergency on Lagos traffic with 1,000 officers and men pushed to the roads to cushion the effects.
Odumosu, who resumed on Monday as the new Commissioner, arrives at a time Lagosians are facing horrendous gridlocks occasioned by ongoing road constructions on major highways.
The Nation reports that several residents took to the social media to lament man-hours spent and lost in traffic especially along the Agege Motor Road, Airport Road, Ikorodu Road, Eko Bridge, Apongbon and Victoria Island.
It was discovered that motorists were stuck between Bolade Oshodi and Ikeja Along Bus Stop for over five hours, a distance that ordinarily should not exceed 15 minutes.
Acknowledging that miscreants could easily prey on such situations, Odumosu on Thursday, deployed additional 1,000 cops for traffic duties across the state.
Read Also: Two shot, others injured as road transport unions clash in Lagos
At an emergency meeting with his management team, heads of units/ departments, Area Commanders and Divisional Police Officers (DPOs) to review the current traffic situation, Odumosu directed a 24-hour coverage of all roads.
According to a statement by police spokesman Bala Elkana, a Deputy Superintendent (DSP), the Commissioner also reviewed traffic duty to two shifts daily.
“Traffic Duty Officers will run shifts between 10 am and 10 pm, while the second shift will be 10 pm to 10 am. They will provide 24-hour coverage. They will all operate in their usual reflective jackets.
“The measure will help in ensuring the free flow of traffic and will also curb the menace of traffic robbery. The Commissioner of Police calls on Lagosians to accord the Police Officers on traffic duties maximum cooperation in the discharge of their statutory duties. All road users are enjoined to obey traffic laws,” he said.


Hospital - Blood bank Search
Search for the blood group in near by patients
Menus
Patient
Doctor
Hospital
Blood Group:
Select blood group
O-
O+
A-
A+
B-
B+
AB-
AB+
Location:
Radius:
Latitude:
Longitude:
Save


org.chimeras1684.year2014.vision
Classes
ARVision
ARVision.ColorMode
ARVision.ImageType
ARVision.MeasurementType
ARVision.Range
ARVision.Rect
LinearAverages
LinearAverages.LinearAveragesMode


June 20, 2017
For out-of-town guests and family
7 PM: "Rehearsal" Dinner
July 1, 2017
530 PM: Cocktail Hour
630 PM: Ceremony
7 PM: Dinner
8-1030 PM: Reception
We reserved two blocks of rooms for your stay.
Just call and let them know that you are with the Weiss MacLeod Wedding Party.
Just three blocks from the Wedding.
718-625-2100
Friday, June 30, 2017: $250 + tax (Queen)
Saturday, July 1, 2017: $240 + tax (Queen)
Just three blocks from the Wedding.
718-625-2100
Friday, June 30, 2017: $250 + tax (Queen)
Saturday, July 1, 2017: $240 + tax (Queen)


[§708-891.6] Computer fraud in the third degree. (1) A person commits the offense of computer fraud in the third degree if the person knowingly accesses a computer, computer system, or computer network with the intent to commit the offense of theft in the third or fourth degree.
(2) Computer fraud in the third degree is a class C felony. [L 2012, c 293, §1]


Issues
| # | Summary | Product | Status | Kind | When |
|---|---|---|---|---|---|
| 1755 |
Page title for tweets#show is unhelpfully, "wincent.com: tweets" |
wincent.com | closed | bug | |
| 1754 |
Code comment typo on line 432 of wikitext_ragel.rl |
wikitext | closed | bug | |
| 1753 |
"sorted_matchers_for" function should be "sorted_matches_for" |
Command-T | closed | bug | |
| 1752 |
Namespace clash on Windows ("ruby VIM::command" actually hits "CommandT::VIM::command") |
Command-T | closed | bug | Created , updated |
| 1751 |
arrow keys doesn't work correct in screen |
Command-T | closed | bug | |
| 1750 |
Switch to nginx 0.8.x series |
wincent.com | closed | feature request | Created , updated |
| 1749 |
Add txt/raw format for snippets |
wincent.com | closed | feature request | Created , updated |
| 1748 |
Front page cache (/) not correctly expired |
wincent.com | closed | bug | |
| 1747 |
Wrong mime-type being used for https://wincent.com/ |
wincent.com | closed | bug | |
| 1746 |
Tag navigation |
Command-T | closed | feature request | Created , updated |


New Face In Charge For Limpopo Derby
by Soccer LadumaA new coach will take charge of the technical bench for one of the teams to play in the Limpopo derby this weekend.
Following Polokwane City’s decision to relieve Serbian coach Zlatko Krmpotic of his duties, sources have indicated that Bernard Molekwa has been elevated to the position of caretaker coach at the club.
Read – Breaking: Another PSL Club Parts Ways With Head Coach
Molekwa has been doubling up as assistant coach and team manager at Rise and Shine. With Polokwane set to host Baroka FC in the Limpopo derby on Saturday at the Old Peter Mokaba Stadium, it has been confirmed by sources close to the club that Molekwa will be in charge of the side.
Molekwa has previously stepped up to the plate in leading Rise and Shine whenever the club parted ways with a coach.
Read: Pressure Mounts For Coach At Relegation-Threatened Chippa
Krmpotic lost his job after a five-match winless streak by the team, despite them still being in the top eight.
The 5-3 loss to Cape Town City on Wednesday was the last straw for the club, who decided to show the Serbian coach the exit door.


The most important step towards your goals is writing down where you've been. Keeping a detailed history of workouts can show you how far you've come, and give you the encouragement to keep going. Track workouts from your PC, Phone or Tablet with Fit-Journal.


New Object Dialog
The New Object Dialog lets you add a new object to the file. Enter a name, select a class, and hit OK to create your new object. You can add a folder using this dialog and selecting "Folder" for the class or by using the New Folder Dialog.
| Name | A name should be a short description of the object - the name is what shows up in the Data View, on the left side of the screen, so shorter names usually work best.
Note: Names do not have to be unique - you can have two objects with the same name, even if one of them is being linked to by a link property. |
| Class | Select the class for the new object. The class you select determines which icon will be associated with the new object, what properties will show up in the Properties View, and what views will be available to the object.
You can also create a new class by clicking on the Create new class... button to the right of the list. |
| Class Description | Displays the description of the selected class. This is read-only. |
| Location | Select the location where you want to add the new object. |


| Andrew Fuller | |
| Title | Sales Representative |
| Notes | Andrew received his BTS commercial in 1974 and a Ph.D. in international marketing from the University of Dallas in 1981. He is fluent in French and Italian and reads German. He joined the company as a sales representative, was promoted to sales manager in January 1992 and to vice president of sales in March 1993. Andrew is a member of the Sales Management Roundtable, the Seattle Chamber of Commerce, and the Pacific Rim Importers Association. |
| Birth Date | 19-Feb-52 |
| Hire Date | 14-Aug-92 |
| Home Phone |<PHONE_NUMBER> |
| Address | 908 W. Capital Way. |
| Postal Code | 98401 |
| City | Tacoma |
| Country | USA |
| Anne Dodsworth | |
| Title | Inside Sales Coordinator |
| Notes | Anne has a BA degree in English from St. Lawrence College. She is fluent in French and German. |
| Birth Date | 27-Jan-66 |
| Hire Date | 15-Nov-94 |
| Home Phone | (71) 555-5598 |
| Address | 7 Houndstooth Rd. |
| Postal Code | WG2 7LT |
| City | London |
| Country | UK |
| Janet Leverling | |
| Title | Sales Representative |
| Notes | Janet has a BS degree in chemistry from Boston College (1984). She has also completed a certificate program in food retailing management. Janet was hired as a sales associate in 1991 and promoted to sales representative in February 1992. |
| Birth Date | 27-Jan-69 |
| Hire Date | 15-Nov-94 |
| Home Phone | (71) 555-4444 |
| Address | Miner Rd. |
| Postal Code | WG2 7LT |
| City | London |
| Country | UK |
| Laura Callahan | |
| Title | Sales Representative |
| Notes | Laura received a BA in psychology from the University of Washington. She has also completed a course in business French. She reads and writes French. |
| Birth Date | 27-Jan-66 |
| Hire Date | 15-Nov-94 |
| Home Phone | (71) 555-4444 |
| Address | 7 Houndstooth Rd. |
| Postal Code | WG2 7LT |
| City | London |
| Country | UK |
| Margaret Peacock | |
| Title | Vice President, Sales |
| Notes | Margaret holds a BA in English literature from Concordia College (1958) and an MA from the American Institute of Culinary Arts (1966). She was assigned to the London office temporarily from July through November 1992. |
| Birth Date | 19-Sep-37 |
| Hire Date | 17-Oct-93 |
| Home Phone |<PHONE_NUMBER> |
| Address | 4110 Old Redmond Rd. |
| Postal Code | 98052 |
| City | Redmond |
| Country | USA |
| Michael Suyama | |
| Title | Sales Representative |
| Notes | Michael is a graduate of Sussex University (MA, economics, 1983) and the University of California at Los Angeles (MBA, marketing, 1986). He has also taken the courses 'Multi-Cultural Selling' and 'Time Management for the Sales Professional.' He is fluent in Japanese and can read and write French, Portuguese, and Spanish. |
| Birth Date | 02-Jul-63 |
| Hire Date | 05-June-96 |
| Home Phone | (71) 555-4848 |
| Address | Coventry House |
| Postal Code | EC2 7JR |
| City | London |
| Country | UK |
| Nancy Davolio | |
| Title | Sales Representative |
| Notes | Education includes a BA in psychology from Colorado State University in 1970. She also completed 'The Art of the Cold Call.' Nancy is a member of Toastmasters International. |
| Birth Date | 08-Dec-48 |
| Hire Date | 01-May-92 |
| Home Phone |<PHONE_NUMBER> |
| Address | 507 - 20th Ave. E. Apt. 2A |
| Postal Code | 98122 |
| City | Seattle |
| Country | USA |
| Robert King | |
| Title | Sales Representative |
| Notes | Robert King served in the Peace Corps and traveled extensively before completing his degree in English at the University of Michigan in 1992, the year he joined the company. After completing a course entitled 'Selling in Europe,' he was transferred to the London office in March 1993. |
| Birth Date | 29-May-60 |
| Hire Date | 02-Jan-94 |
| Home Phone | (71) 555-5598 |
| Address | Winchester Way |
| Postal Code | RG1 9SP |
| City | London |
| Country | UK |
| Steven Buchanan | |
| Title | Sales Manager |
| Notes | Steven Buchanan graduated from St. Andrews University, Scotland, with a BSC degree in 1976. Upon joining the company as a sales representative in 1992, he spent 6 months in an orientation program at the Seattle office and then returned to his permanent post in London. He was promoted to sales manager in March 1993. Mr. Buchanan has completed the courses 'Successful Telemarketing' and 'International Sales Management.' He is fluent in French. |
| Birth Date | 04-Mar-55 |
| Hire Date | 02-May-94 |
| Home Phone | (71) 555-5598 |
| Address | 908 W. Capital Way |
| Postal Code | 98052 |
| City | Redmond |
| Country | USA |
| Ken | 15 min |
| Appointment | |
Hi, I just wanted to remind you dinner is at 8pm tonight at Carl's. |
|
15 min
Hi,
I just wanted to remind you dinner is at 8pm tonight at Carl's.
{{title="Sue (sue78@pmail.com)"}}| Sue | 2 hr |
| Shopping | |
Here's the shopping list for tommorow's party: |
|
2 hr
Here's the shopping list for tommorow's party:
| University of Madrid | 9/1/17 |
| Re: Exam | |
Dear student, Attached you can find the result of your exam. |
|
9/1/17
Dear student,
Attached you can find the result of your exam.
University of Madrid
Av. Séneca, 2, 28040 Madrid, Spain
| Meghan | |
| Dinner tonight? | |
Hi, how about a dinner at my parents' tonight? |
|
Hi,
how about a dinner at my parents' tonight?
{{title="Titus LDT (info@titus-ldt.com)"}}| Titus LDT | |
| About the interview | |
Hello, We are writing to inform you that your application has been shortlisted and would like to invite you to a second interview in our office. |
|
Hello,
We are writing to inform you that your application has been shortlisted and would like to invite you to a second interview in our office.
Sincerely,
The Titus Team
| QuickShare | |
| Important update | |
Dear user, Our terms of service have changed. |
|
Dear user,
Our terms of service have changed. Please find attached the updated document.
{{title="QuickShare (info@quickshare.com)"}}| QuickShare | |
| Welcome to our forums | |
Dear user, Welcome to the QuickShare forums. |
|
Dear user,
Welcome to the QuickShare forums.


View a vector positive vectors as population, calculate discrete GINI inequality measure. This file works out how the ff_dist_gini_vector_pos function works from Fan’s REconTools Package.
There is an vector values (all positive). This could be height information for N individuals. It could also be income information for N individuals. Calculate the GINI coefficient treating the given vector as population. This is not an estimation exercise where we want to estimate population gini based on a sample. The given array is the population. The population is discrete, and only has these N individuals in the length n vector.
See the formula below, note that when the sample size is small, there is a limit to inequality using the formula defined below given each \(N\). So for small \(N\), can not really compare inequality across arrays with different \(N\), can only compare arrays with the same \(N\).
Given monotonimcally increasing array \(X\), with \(x_1,...,x_N\):
The GINI formula used here is: \[ GINI = 1 - \frac{2}{N+1} \cdot \left(\sum_{i=1}^N \sum_{j=1}^{i} x_j\right) \cdot \left( \sum_{i=1}^N x_i \right)^{-1} \]
Derive the formula in the steps below.
\[ \Gamma = \sum_{i=1}^N \frac{1}{N} \cdot \left( \sum_{j=1}^{i} \left( \frac{x_j}{\sum_{\widehat{j}=1}^N x_{\widehat{j}} } \right) \right) \]
With perfect equality \(x_i=a\) for all \(i\), so need to divide by that.
\[ \Gamma^{\text{equal}} = \sum_{i=1}^N \frac{1}{N} \cdot \left( \sum_{j=1}^{i} \left( \frac{a}{\sum_{\widehat{j}=1}^N a } \right) \right) = \frac{N+1}{N}\cdot\frac{1}{2} \]
As the number of elements of the vecotr increases: \[ \lim_{N \rightarrow \infty}\Gamma^{\text{equal}} = \lim_{N \rightarrow \infty} \frac{N+1}{N}\cdot\frac{1}{2} = \frac{1}{2} \]
Given what we have from above, we obtain the gini formula, divide by total area below 45 degree line.
\[ GINI = 1 - \left(\sum_{i=1}^N \sum_{j=1}^{i} x_j\right) \cdot \left( N \cdot \sum_{i=1}^N x_i \right)^{-1} \cdot \left( \frac{N+1}{N}\cdot\frac{1}{2} \right)^{-1} = 1 - \frac{2}{N+1} \cdot \left(\sum_{i=1}^N \sum_{j=1}^{i} x_j\right) \cdot \left( \sum_{i=1}^N x_i \right)^{-1} \]
Suppose \(x_i=0\) for all \(i<N\), then:
\[ GINI^{x_i = 0 \text{ except } i=N} = 1 - \frac{2}{N+1} \cdot X_N \cdot \left( X_N \right)^{-1} = 1 - \frac{2}{N+1} \]
\[ \lim_{N \rightarrow \infty} GINI^{x_i = 0 \text{ except } i=N} = 1 - \lim_{N \rightarrow \infty} \frac{2}{N+1} = 1 \]
Note that for small N, for example if \(N=10\), even when one person holds all income, all others have 0 income, the formula will not produce gini is zero, but that gini is equal to \(\frac{2}{11}\approx 0.1818\). If \(N=2\), inequality is at most, \(\frac{2}{3}\approx 0.667\).
\[ MostUnequalGINI\left(N\right) = 1 - \frac{2}{N+1} = \frac{N-1}{N+1} \]
The GINI formula just derived is trivial to compute.
There are no package dependencies. Define the formula here:
# Load Library
rm(list = ls())
# Formula, directly implement the GINI formula Following Step 4 above
<- function(ar_pos) {
fv_dist_gini_vector_pos_test # Check length and given warning
<- length(ar_pos)
it_n if (it_n <= 100) warning('Data vector has n=',it_n,', max-inequality/max-gini=',(it_n-1)/(it_n + 1))
# Sort
<- sort(ar_pos)
ar_pos # formula implement
<- 1 - ((2/(it_n+1)) * sum(cumsum(ar_pos))*(sum(ar_pos))^(-1))
fl_gini return(fl_gini)
}
Generate a number of examples Arrays for testing
# Example Arrays of data
= c(1)
ar_equal_n1 = c(100)
ar_ineql_n1
= c(1,1)
ar_equal_n2 = c(1,2)
ar_ineql_alittle_n2 = c(1,2^3)
ar_ineql_somewht_n2 = c(1,2^5)
ar_ineql_alotine_n2 = c(1,2^8)
ar_ineql_veryvry_n2 = c(1,2^13)
ar_ineql_mostmst_n2
= c(2,2,2,2,2,2, 2, 2, 2, 2)
ar_equal_n10 = c(1,2,3,5,8,13,21,34,55,89)
ar_ineql_some_n10 = c(1,2^2,3^2,5^2,8^2,13^2,21^2,34^2,55^2,89^2)
ar_ineql_very_n10 = c(1,2^2,3^3,5^4,8^5,13^6,21^7,34^8,55^9,89^10)
ar_ineql_extr_n10
# Uniform draw testing
= runif(1000, min=0, max=1)
ar_unif_n1000
# Normal draw testing
= rnorm(1000, mean=100, sd =1)
ar_norm_lowsd_n1000 <0] = 0
ar_norm_lowsd_n1000[ar_norm_lowsd_n1000= rnorm(1000, mean=100, sd =20)
ar_norm_highsd_n1000 <0] = 0
ar_norm_highsd_n1000[ar_norm_highsd_n1000
# Beta draw testing
= rbeta(1000, 5, 1)
ar_beta_mostrich_n1000 = rbeta(1000, 1, 5)
ar_beta_mostpoor_n1000 = rbeta(1000, 0.5, 0.5) ar_beta_manyrichmanypoor_nomiddle_n1000
Now test the example arrays above using the function based no our formula:
#>
#> Small N=1 Hard-Code
#> Warning in fv_dist_gini_vector_pos_test(ar_equal_n1): Data vector has n=1, max-
#> inequality/max-gini=0
#> ar_equal_n1: 0
#> Warning in fv_dist_gini_vector_pos_test(ar_ineql_n1): Data vector has n=1, max-
#> inequality/max-gini=0
#> ar_ineql_n1: 0
#>
#> Small N=2 Hard-Code, converge to 1/3, see formula above
#> Warning in fv_dist_gini_vector_pos_test(ar_ineql_alittle_n2): Data vector has
#> n=2, max-inequality/max-gini=0.333333333333333
#> ar_ineql_alittle_n2: 0.1111111
#> Warning in fv_dist_gini_vector_pos_test(ar_ineql_somewht_n2): Data vector has
#> n=2, max-inequality/max-gini=0.333333333333333
#> ar_ineql_somewht_n2: 0.2592593
#> Warning in fv_dist_gini_vector_pos_test(ar_ineql_alotine_n2): Data vector has
#> n=2, max-inequality/max-gini=0.333333333333333
#> ar_ineql_alotine_n2: 0.3131313
#> Warning in fv_dist_gini_vector_pos_test(ar_ineql_veryvry_n2): Data vector has
#> n=2, max-inequality/max-gini=0.333333333333333
#> ar_ineql_veryvry_n2: 0.3307393
#>
#> Small N=10 Hard-Code, convege to 9/11=0.8181, see formula above
#> Warning in fv_dist_gini_vector_pos_test(ar_equal_n10): Data vector has n=10,
#> max-inequality/max-gini=0.818181818181818
#> ar_equal_n10: 0
#> Warning in fv_dist_gini_vector_pos_test(ar_ineql_some_n10): Data vector has
#> n=10, max-inequality/max-gini=0.818181818181818
#> ar_ineql_some_n10: 0.5395514
#> Warning in fv_dist_gini_vector_pos_test(ar_ineql_very_n10): Data vector has
#> n=10, max-inequality/max-gini=0.818181818181818
#> ar_ineql_very_n10: 0.7059554
#> Warning in fv_dist_gini_vector_pos_test(ar_ineql_extr_n10): Data vector has
#> n=10, max-inequality/max-gini=0.818181818181818
#> ar_ineql_extr_n10: 0.8181549
#>
#> UNIFORM Distribution
#> ar_unif_n1000: 0.3362994
#>
#> NORMAL Distribution
#> ar_norm_lowsd_n1000: 0.005697335
#> ar_norm_highsd_n1000: 0.117818
#>
#> BETA Distribution
#> ar_beta_mostpoor_n1000: 0.4560572
#> ar_beta_manyrichmanypoor_nomiddle_n1000: 0.3902195
#> ar_beta_mostrich_n1000: 0.09224907
#>
#>
#> SHOULD/DOES NOT WORK TEST
#> ar_unif_n1000_NEGATIVE: 31.97591


This is a tutorial for getting started writing your own tactics in Lean. It is intended for an audience that does not necessarily have experience working with monads in a functional programming langauge (e.g. most mathematicians).
Other useful resources while learning to write tactics include:
Tactics are programs that act on the proof state. But Lean is a functional programming language. It means all you can do is define and evaluate functions. Each function takes input with a predefined type, and gives output with a predefined type. It seems to prevent having a global state (like the current assumptions and goals), and having output type depending on the input value (for instance a tactic can succeed or fail), or outputting messages. These issues are resolved by three layers of tricks (the following brief descriptions will hopefully become clearer later):
by
or delimited by
begin
/end
The first two points are collectively known as monadic programming (of course there is a more precise definition, but we will try to ignore it).
The type of a function that can inspect the proof state, modify it, and
potentially return something of type α
(or fail) is called tactic α
. In
particular tactic unit
is only about manipulating proof state, without
trying to return anything (technically it will return something of type
unit
, which is the type having exactly one term, denoted by ()
).
Such functions are either called by other
tactics---those are typically in the tactic
namespace---or called
interactively by users inside tactic blocks---those must be in the
tactic.interactive
namespace (this is not quite necessary for very simple
tactics, but weird things will happen in general when ignoring this rule). A
shortcut which is sometimes convenient is: one can copy definitions with name
my_tac1
, my_tac2
, my_tac3
, into the tactic.interactive
namespace using
run_cmd add_interactive [`my_tac1,`my_tac2, `my_tac3]
.
These functions will be used to generate Lean proofs, but we will not prove
anything about these functions themselves, nor will the constants my_tac1
,
my_tac2
, etc. appear in the proofs
that they generate. By prefacing them with the keyword meta
, we tell Lean that
they are for "evaluation purposes only," which disables some of the checks that
non-meta
declarations must pass.
This is enough knowledge to write a first tactic.
meta def my_first_tactic : tactic unit := tactic.trace "Hello, World."
example : true :=
begin
my_first_tactic,
trivial
end
In the example, my_first_tactic
is underlined in green (in VS Code) and
moving the cursor on that line will display our message in the Lean
messages buffer.
Next we need to learn how to chain several actions. Deep down, this is
all about composing functions, but the monadic notations hide this and
emulate imperative programming. We need to use the and_then
combinator. The first way is to use the infix notation >>
, as in:
meta def my_second_tactic : tactic unit :=
tactic.trace "Hello," >> tactic.trace "World."
which now prints our message in two pieces. Alternatively, one can use
the do
syntax, which has other goodies. This introduces a
comma-separated list of instructions to perform in sequence.
meta def my_second_tactic' : tactic unit :=
do
tactic.trace "Hello,",
tactic.trace "World."
Besides displaying messages, the next thing tactics can do is to fail, potentially with some explanation.
meta def my_failing_tactic : tactic unit := tactic.failed
meta def my_failing_tactic' : tactic unit :=
tactic.fail "This tactic failed, we apologize for the inconvenience."
When chaining instructions, the first failure interrupts the process.
However the orelse
combinator, denoted by an infix <|>
allows to try
its right-hand side if its left-hand side failed. The following will
successfully deliver its message.
meta def my_orelse_tactic : tactic unit :=
my_failing_tactic <|> my_first_tactic
The next composite thing to do is to use some function that, after
reading or altering the proof state, actually tries to return
something. For instance the built-in tactic.target
(tries to) return
the current goal. This goal has type expr
(more on that type later).
The type of tactic.target
is thus tactic expr
. Say we want to trace
the current goal. A naive attempt would be:
meta def broken_trace_goal : tactic unit :=
tactic.trace tactic.target -- WRONG!
This cannot be correct because tactic.target
could fail (there could
be no more goal) and tactic.trace
cannot take that failure as an
input. We need the bind combinator, with infix notation >>=
, sending
the output of its left-hand side to its right-hand side in case of
success and failing otherwise.
meta def trace_goal : tactic unit :=
tactic.target >>= tactic.trace
Alternatively, especially if the output of tactic.target
could be used
several times, one can use the do
blocks assignments using ←
(the
same arrow as in the rewrite syntax). This emulation of imperative
variable assignment will of course fail (as the failing tactics above)
if the right-hand side of the assignment fails.
meta def trace_goal' : tactic unit :=
do
goal ← tactic.target,
tactic.trace goal
Beware that this kind of assignment is only trying to extract data of type
α
from something of type tactic α
. It cannot be used to store
regular stuff. The following doesn't work.
meta def broken_assignment : tactic unit :=
do
message ← "Hello, World.", -- WRONG!
tactic.trace message
However, one can use let
in do
blocks, as in:
meta def let_example : tactic unit :=
do
let message := "Hello, World.",
tactic.trace message
Next, we want to write tactics returning something, as tactic.target
is doing. The only extra ingredient is the return
function. The
following function tries to return tt
is there is no more goal, ff
otherwise. The next one can be used interactively and traces the result
(note that using the first one interactively won't have any visible
effect since interactive use ignores the returned value).
meta def is_done : tactic bool :=
(tactic.target >> return ff) <|> return tt
meta def trace_is_done : tactic unit :=
is_done >>= tactic.trace
The last thing we will need about monadic assignment is pattern-matching
assignment. The following tactic tries to define expressions l
and r
as
the left and right hand sides of the current goal. It also uses the
to_string
function which is very convenient in combination with trace
in order to debug tactics, and works on any type which is an instance of has_to_string
.
meta def trace_goal_is_eq : tactic unit :=
(do `(%%l = %%r) ← tactic.target,
tactic.trace $ "Goal is equality between " ++ (to_string l) ++ " and " ++ (to_string r) )
<|> tactic.trace "Goal is not an equality"
The parenthesis in the above code don't look very nice. One could use
instead curly brackets which allow to delimit a do
block, as in:
meta def trace_goal_is_eq : tactic unit :=
do { `(%%l = %%r) ← tactic.target,
tactic.trace $ "Goal is equality between " ++ (to_string l) ++ " and " ++ (to_string r) }
<|> tactic.trace "Goal is not an equality"
We have studied enough monadology to understand our first useful tactic:
the assumption
tactic, which searches the local context for an
assumption which closes the current goal. It uses a couple more builtin
tactics, both declared and briefly documented in the core library in
init/meta/tactic.lean but actually implemented in C++.
First infer_type : expr → tactic expr
tries to determine the type of an expression (since it returns a
tactic expr
, it must be chained with either >>=
or ←
, as explained
above).
Next tactic.unify
which, modulo a couple of optional parameters, takes
two expressions and succeeds if and only if they are definitionally equal.
The first piece of the assumption tactic is a helper function searching
an expression sharing the type of some expression e
in a list of
expressions, returning the first match (or failing if nothing matches).
meta def find_matching_type (e : expr) : list expr → tactic expr
| [] := tactic.failed
| (H :: Hs) := do t ← tactic.infer_type H,
(tactic.unify e t >> return H) <|> find_matching_type Hs
Make sure you really understand the control flow in the above code using
the previous section. The basic pattern is classical recursive find in a
list. Notice the expression e
is left of colon, hence it will be passed
unchanged to the recursive call find_matching_type Hs
. The choice of
name H
stands for hypothesis
, while Hs
, following Haskell's naming
conventions, stands for several hypotheses. The imperative analogue of
what happens for non-empty lists would read something like the following
imperative pseudo-code
if unify(e, infer_type(H)) then return H else find_matching_type(e, HS)
We can now use this function for our interactive tactic. We first need
to grab the local context using local_context
, which returns a list of
expressions that we can pass to our find_matching_type
. If that
function succeeds, its output is passed to the builtin tactic
tactic.exact
. Here we need to use the fully qualified name because of
possible confusion with the interactive version of exact
(which takes
different parameters, so it's not an exact copy of the non-interactive
one). This is good opportunity to point out that the beginning of this
tutorial uses fully qualified names everywhere for clarity, but of
course the real world workflow is to open the tactic
namespace.
meta def my_assumption : tactic unit :=
do { ctx ← tactic.local_context,
t ← tactic.target,
find_matching_type t ctx >>= tactic.exact }
<|> tactic.fail "my_assumption tactic failed"
Bonus question: what if we remove the brackets? Will it still type-check? If yes, will the resulting tactic be the same?
A crucial tool of imperative programming is loops, so monads must
emulate this. We already know from usual Lean that list.map
and
list.foldr
/list.foldl
allow to loop on elements of list. But we need
version that interacts nicely with the monad world (consuming and
returning terms of type tactic stuff
). Those versions are prefixed with
"m" for monad, as in list.mmap
, list.mfoldr
etc. Our tactic is then:
meta def list_types : tactic unit :=
do
l ← tactic.local_context,
l.mmap (λ h, tactic.infer_type h >>= tactic.trace),
return ()
The last line is a bit silly: it's there because what we get from the
previous line has type list unit
, so it cannot be the final
piece of our do block. Hence we add return ()
where ()
is the
only term of type unit
. One can also use the tactic skip
to achieve
the same goal. This special case is so common that we actually have a
variant list.mmap'
of list.mmap
which discards the result of
the function applied to elements of the list, and returns ()
when it's
done traversing the list.
Our next goal is to be able to use and create assumptions in the local context. We will write a tactic that produces a new assumption by adding two known equalities (or failing miserably if this operation doesn't make sense). At first the names of thoses two equalities will be stupidly hardwired in our tactic. So we want a tactic performing the first line in the following proof.
example (a b j k : ℤ) (h₁ : a = b) (h₂ : j = k) :
a + j = b + k :=
begin
have := congr (congr_arg has_add.add h₁) h₂,
exact this
end
The first new concept we need is that of a name. In order to allow for
namespace management, names in Lean are actually defined as an inductive
type, in core library meta/name.lean. Manipulating its constructors is not
convenient, so we use instead the backtick notation (this is the first of
many uses of backticks in tactic writing). Actually we already did that when
discussing the add_interactive
command at the very beginning. Accessing an
item of the local context by its name is done by tactic.get_local
. The next
new piece we need is tactic.interactive.«have»
which will create our new
context item. Its weird name works around the fact that have
is a keyword,
hence not a valid name. It takes two optional arguments that we ignore for
now, and a pre-expression which is a proof of our new item. Such a
pre-expression is constructed using the double-backtick-parenthesis notation:
``(...)
. Inside such a construction, previously assigned expressions
are accessed using the anti-quotation prefix %%
. This syntax is very close
to the pattern matching syntax we saw above (but different).
open tactic.interactive («have»)
open tactic (get_local infer_type)
meta def tactic.interactive.add_eq_h₁_h₂ : tactic unit :=
do e1 ← get_local `h₁,
e2 ← get_local `h₂,
«have» none none ``(_root_.congr (congr_arg has_add.add %%e1) %%e2)
example (a b j k : ℤ) (h₁ : a = b) (h₂ : j = k) :
a + j = b + k :=
begin
add_eq_h₁_h₂,
exact this
end
A last remark about the above tactic: the names `h₁
and `h₂
are resolved
when the tactic is executed. In order to trigger name resolution when
the tactic is parsed, one should use double-backtick, as in ``h₁
. Of course
in the above context, that would trigger an error since nothing named h₁
is
in sight at tactic parsing time. But it can be useful in other cases.
Obviously the previous tactic is useless if the assumption names are hardwired. So we replace it by:
open interactive (parse)
open lean.parser (ident)
meta def tactic.interactive.add_eq (h1 : parse ident) (h2 : parse ident) : tactic unit :=
do e1 ← get_local h1,
e2 ← get_local h2,
«have» none none ``(_root_.congr (congr_arg has_add.add %%e1) %%e2)
The arguments h1
and h2
tell lean to parse identifiers. There is quite a
bit of trickery going one here. The Lean parser sees parse
left of colon,
so it knows it must do some argument parsing, but then the resulting type is
nothing but a name, as demonstrated below.
meta example : (parse ident) = name := rfl
The next improvement to this tactic offers the opportunity to name the new
local assumption (which is currently named this
). Such names are
traditionally introduced by the token with
, followed by the desired identifier.
The "followed by" is expressed by the seq_right
combinator (there is again
a monad lurking here), with notation *>
. Parsing a token is introduced by
lean.parser.tk
followed by a string which must be taken from a
predetermined list (the initial value of this list can be found in
Lean source code, in frontends/lean/token_table.cpp,
elements are added to this list when literals are used in notation
, infix
, or precedence
).
And then the combination is wrapped into optional
to make it optional. The term h
we
get below has then type option name
and can be passed as the first argument
of «have»
, which will use it if provided, and otherwise use the name this
.
open lean.parser (tk)
meta def tactic.interactive.add_eq' (h1 : parse ident) (h2 : parse ident)
(h : parse (optional (tk "with" *> ident))) : tactic unit :=
do e1 ← get_local h1,
e2 ← get_local h2,
«have» h none ``(_root_.congr (congr_arg has_add.add %%e1) %%e2)
example (m a b c j k : ℤ) (Hj : a = b) (Hk : j = k) :
a + j = b + k :=
begin
add_eq' Hj Hk with new,
exact new
end
Our next tactic multiplies from the left an equality by a given expression (or fails if this operation wouldn't make sense). We want to mechanize the following proof.
example (a b c : ℤ) (hyp : a = b) : c*a = c*b :=
begin
replace hyp := congr_arg (λ x, c*x) hyp,
exact hyp
end
The main new skills here consist in indicating at what location we want to
act, using the traditional token at
, and passing an expression to the
tactic. Locations are defined in the core library meta/interactive_base.lean as
an inductive type having two constructors: wildcard
which indicates all
locations, and loc.ns
which takes a list (option name)
, where none
in
the option name
means the current goal, whereas some n
means the thing
named n
in the local context. In our case we will pattern-match on the
parsed location and reject everything except specifying a single name from
the local context. The second new piece is how to parse a user-provided
expression. The relevant parser is interactive.types.texpr
, whose result is
converted to an actual expression using tactic.i_to_expr
. This is also the
opportunity for our first serious use of pattern matching assignment, and
for using the second optional argument of «have»
which is the expected type
(otherwise we would get unapplied multiplication, with an explicit lambda, try it!).
open interactive (loc.ns)
open interactive.types (texpr location)
meta def tactic.interactive.mul_left (q : parse texpr) : parse location → tactic unit
| (loc.ns [some h]) := do
e ← tactic.i_to_expr q,
H ← get_local h,
`(%%l = %%r) ← infer_type H,
«have» h ``(%%e*%%l = %%e*%%r) ``(congr_arg (λ x, %%e*x) %%H),
tactic.clear H
| _ := tactic.fail "mul_left takes exactly one location"
example (a b c : ℤ) (hyp : a = b) : c*a = c*b :=
begin
mul_left c at hyp,
exact hyp
end
As a last refinement, let us make a version of this tactic which names the
multiplied equality by appending .mul
, and optionally removes the original
one if the tactic name is followed by !
. This is the opportunity to use
when
which is the monadic version of ite
(with else branch doing nothing).
See control/combinators.lean in core library for other variations on this idea.
meta def tactic.interactive.mul_left_bis (clear_hyp : parse (optional $ tk "!")) (q : parse texpr) :
parse location → tactic unit
| (loc.ns [some h]) := do
e ← tactic.i_to_expr q,
H ← get_local h,
`(%%l = %%r) ← infer_type H,
«have» (H.local_pp_name ++ "mul" : name) ``(%%e*%%l = %%e*%%r) ``(congr_arg (λ x, %%e*x) %%H),
when clear_hyp.is_some (tactic.clear H)
| _ := tactic.fail "mul_left_bis takes exactly one location"
This is the end of this tutorial (although there are two cheat sheets below). If you want to learn more, you can read the definitions of tactics in either the core library or mathlib, see what you can understand, and ask specific questions on Zulip. For more theory, especially a proper explanation of monads, you can read Programming in Lean, but the actual tactic writing part is not up to date. The official documentation of the tactic framework is the paper A Metaprogramming Framework for Formal Verification.
This section is a direct compilation of messages from Mario on Zulip.
`my.name
is the way to refer to a name. It is essentially a form of string quoting; no
checks are done besides parsing dots into namespaced names.
``some
does name resolution at parse time, so this example expands to `option.some
and will error if the given name doesn't exist.
`(my expr)
constructs an expression at parse time, resolving what it can in the current (of
the tactic) namespace.
``(my pexpr)
constructs a pre-expression at parse time, resolving in the current (of the
tactic) namespace.
```(my pexpr)
constructs a pexpr
, but defers resolution to run time (of the tactic),
meaning that any references will be resolved in the namespace of the begin
end
block of the
user, rather than the tactic itself.
%%
: This is called anti-quotation, and is supported in all the expr and pexpr quoting
expressions `(expr)
, ``(pexpr)
, ```(pexpr)
, as well as `[tacs]
.
Wherever an expression is expected inside one of these quoting constructs, you can use %%e
instead, where e
has type expr
in the outer context of the tactic, and it will be spliced
into the constructed expr
/pexpr
/etc. For example, if a b : expr
then `(%%a + %%b)
is
of type expr
.
The reflect
function turns a term t : T
into an expr
that reflects t
, if Lean can infer
an instance reflected t
. This can be used, for example, to refer to local variables from a
tactic definition inside a quotation, using %%(reflect n)
. As an example, we could write
meta def assert_ge_zero (n : ℕ) : tactic unit :=
do v ← to_expr ``(nat.zero_le %%(reflect n)),
t ← infer_type v,
assertv `h t v,
skip
If you just wrote n
directly here you'd get a "unexpected local in quotation expression"
error.
`[tac...]
is exactly the same as begin tac... end
in the sense that it parses tac...
using the interactive mode parser, but instead of evaluating the tactic to produce a term, it just
wraps up the list of tactics as a single tactic of type tactic unit
. This is useful for writing
"macros" or light-weight tactic writing
Also worth mentioning are expr
pattern matches, which have the same syntax
like `(%%a + %%b)
. These can be used in the pattern position of a match or on
the left side of a ←
in do notation, and will destruct an expression and
bind the antiquoted variables.
For example, if e
is an expression then do `(%%a = %%b) ← return e, ...
will check that
e
is an equality, and bind the LHS and RHS to a
and b
(of type expr
), and if it is not an
equality the tactic will fail.
(It's worth noting that this sort of pattern matching works at a syntactic level. Sometimes it is more flexible to use unification, instead.)
All functions and notations from the list below apply to more general monads than tactic
, so they
are listed in a generic form but, for the purposes
of this tutorial m
is always tactic
(or lean.parser
). Although
everything can be done with the symbols introduced in this tutorials, more
esoteric symbols allow to compress code, and understanding them is useful for
reading available tactics.
return
: produce a value in the monad (type: A → m A
)ma >>= f
: get the value of type A
from ma : m A
and pass it to f : A → m B
. Alternate
syntax: do a ← ma, f a
f <$> ma
: apply the function f : A → B
to the value in ma : m A
to get a m B
. Same as
do a ← ma, return (f a)
ma >> mb
: same as do a ← ma, mb
; here the return value of ma
is ignored and then mb
is
called. Alternate syntax: do ma, mb
mf <*> ma
: same as do f ← mf, f <$> ma
, or do f ← mf, a ← ma, return (f a)
ma <* mb
: same as do a ← ma, mb, return a
ma *> mb
: same as do ma, mb
, or ma >> mb
. Why two notations for the same thing? Historical
reasons.pure
: same as return
. Again, historical reasons.failure
: failed value (specific monads usually have a more useful form of this, like fail
and
failed
for tactics).ma <|> ma'
recover from failure: runs ma
and if it fails then runs ma'
.a $> mb
: same as do mb, return a
ma <$ b
: same as do ma, return b


Weather Dashboard
Search for a City:
Title
Temperature:
°F
Humidity:
%
Wind Speed:
MPH
UV Index:
5-Day Forecast:


We’ve been at the point now for a while where the interface itself has been complete (in a physical sense, at least), and any additional changes made have been to the software side of things. Pure Data is notoriously open-ended, and so we’ve been experimenting with many things to make the interface both more responsive and more capable in terms of what it can actually do. Over the last week, James and I concentrated on the musical side of things, whereas Ben concentrated on the paper - providing us with a complete first draft over the course of this week.
As mentioned in the last post, we transferred from using the absolute readings from the water sensors, to calculating the rate of change - for a more robust result. Due to the success and precision of this method, we decided to remove the six metronomes that previously drove the synthesiser - introduced to counteract the MIDI feedback that arose from having six continually firing inputs. This meant that the response was truly live, instead of having to adhere to slow metronomic cycles. Furthermore, we also experimented with using second-order differentials instead of first-order differentials, which produced a more harshly-decaying sound, but also one that was generally less responsive overall. Thus, we reverted back to using first-order differentials.
[caption id=”attachment_641” align=”aligncenter” width=”680”] Perfecting the software aspect[/caption]
Progress came along well, but after a while, we agreed that we were just making changes for change’s sake, and that any alterations we made weren’t enhancing the device, they were just changing it - and so we were just going around in circles. Also, we found that some of the major barriers we encountered were as a result of the limitations of the equipment (most notably the inexpensive water sensors), so concluded that certain issues were beyond our control. Thus, we chose to draw a line under it.
Once we were happy with how the device performed, James and I turned our attention to the performance side of things. While a cosmetic extra, due to the expressive nature of our project we wanted to ensure that we presented it in a memorable way - as it is an instrument of musical expression. There are three members in the group, and so we wanted to involve all members in the performance, instead of having just one of us play Waves To Waves while the other two watched. After a bit of rehearsal, this involvement includes Ben playing Waves To Waves, and James and myself playing ordinary keyboard synthesisers as a backing - showing how Waves To Waves can be used alongside conventional instruments to make music.
[caption id=”attachment_640” align=”aligncenter” width=”680”] Experimenting with accompanying synthesisers[/caption]


This project was written using Vue.js to create multiple Vue pages to create a comprehensive translator that each has a different API.
This project is designed to practice Handling User Inputs and Routing and URLs
This is a usability journal that documents my first experiences in learning about UX/UI design.
This project is designed to help me practice your use of common CSS properties and patterns.
This project is designed to practice Handling User Inputs and Routing and URLs.
The goal of this project was to create a "Search Results" page that shows popular movies of the 20th Century.


is a Cydia repository template.
Add to Cydia
Hosted Packages
TGB Respring Logo
TGB custom respring logo. (Not yet tested on iOS 11)
More Info
TGB Icon Pack
Replaces the question mark icons with tgb section images.


PMREM on: HDR with a single bright pixel. PMREM off: DirectionalLight.
The difference between these renders indicates the error in the PMREM approximations.


WITNESS LIST Education Committee February 10, 2000-9:00A Education Interim Study On: Anderson, John (Texas Council on Economic Education), Nacogdoches Barnes, Bill (TEPSA), Bedford Bryant, Judy (Alliance AFT/TFT), Dallas Chavarria, Sandra (Self), Dallas Clapp, Patti (Greater Dallas Chamber), Dallas Collier, Virginia (TASA), Brenham Cook, Jerry (Duncanville ISD), Duncanville Cowart, Melinda (University of North Texas), Dallas Cron, Deborah (Garland ISD), Garland Cruz, Yolanda (Dallas Can Academy), Dallas Davis, Carolyn (Self), Dallas Dickerson, Darren (Dallas Can Academy), Dallas Eddy, Dan ("Best Southwest Partnership"), Grand Prarie Fowler, Connie (Lancaster High School), Lancaster Guerra, Althean (The Perfect Place Pre-School), Dallas Hawkins, Jim (DeSoto ISD), DeSoto Hollingsworth, Lonnie (TCTA), Austin Hornsby, Elaine (TESPA), Dallas Hurley, Alfred (University of North Texas System), Denton Jackson, Lee (Dallas County), Dallas Jones, Thomas (Justice of the Peace, JP Court 7, Place 1), Dallas Kellan, Mary Ann (Hispanic Women's Network of Texas), Dallas Kemble, Roy (TSTA), Dallas Kirk, Ron (City of Dallas), Dallas Lawrence, Stanton (Texas Association of Black School Educators), Dallas McClellan, Peggy (Self), Dallas Meyercord, Pam (Texas PTA), Dallas Nelson, Jim (TEA), Austin Palko, Steve (TBEC), Dallas Pemberton, Edna (Self), Dallas Price, Robert (Dallas Regional National Alliance of Black School Educators), Dallas Ritter, Phil (Texans for Education), Dallas Rodriguez, Oscar (Tomorrow's Teachers), Dallas Rojas, Waldemar (Dallas Public Schools), Dallas Schlachter, Deborah (Self), Lancaster Shaunty, Tim (Texas Council on Economic Education), Houston Stevens, John (TBEC), Austin Tedder, Richard (Lindale ISD), Lindale Wayne, Debra (Self), Dallas Wenrich, Bill (Dallas County Community College District), Dallas Williams, Toni (Mountain View College), Dallas Registering, but not testifying: On: Gardea, Corina (Dallas Community College District), Dallas


This is a test text that is here only to be tested hue br hue hue hue taric op must nurf irelia rito games ggwp


[§527‑9] Requirements. A transfer on death deed:
(1) Except as otherwise provided in paragraph (2), shall contain the essential elements and formalities of a properly recordable inter vivos deed;
(2) Shall state that the transfer to the beneficiary is to occur at the transferor's death; and
(3) Shall be recorded with the bureau of conveyances or filed in the office of the assistant registrar of the land court, as applicable, before the transferor's death. [L 2011, c 173, pt of §1]
Law Journals and Reviews
The Hawai`i Uniform Real Property Transfer on Death Act--Another Tool in the Estate Planner's Arsenal. 15 HBJ, no. 13, at 43 (2013).


Workflow
So how where these projects created?
All projects are made in 4 steps, some smaller than others.
- The first step is to draw a sketch on paper. Some doodling just to get the idea of the concept you're trying to build. With a client involved, this is a perfect way to see if both parties have understood the task ahead.
- The next step is to convert it into a mockup on the computer. This is often more extensive than the sketching. It is easier to continue the work in Photoshop when having a base of sketches and mockups.
- The third step is where the magic happens. Here, the sketches and mockups come to life! This step is usually recursive and requires quite a few retakes before it gets right.
- The fourth and final step is slicing and converting the PSD file from previous step into a website.


Audiogram
Loading...
Audio
Image (only for Custom theme)
Theme
Caption
Add two spaces in a row to force a line break.
Preview
Click and drag over the waveform to clip audio
Use space bar to play/pause
seconds selected
Play
Pause
Restart
Return to editor
Generate
Download
Settings (only works when
Custom
theme is selected.
Documentation
)
width
height
Caption Settings
captionColor
captionFont (format:
400 52px 'Source Sans Pro'
)
captionAlign
left
right
center
captionLineHeight
captionLineSpacing
captionLeft
captionRight
captionTop
captionBottom
Waveform Settings
waveColor
pattern
wave
bars
roundBars
line
curve
pixel
bricks
equalizer
framesPerSecond
samplesPerFrame
waveTop
waveBottom
waveLeft
waveRight
Save


User name
Upload a different photo...
Website
RUMER - APP
About
Charts
Maps
Historical Data
Index
Social Media
Home
First name
Last name
Phone
Mobile
Email
Save


The following is an account of my first experience with Morning Glory Seeds on the 13th of May, 2004:
My only previous experiences with psychedelics include a single time on shrooms, extensive research and many experiments with Salvia Divinorum, and cannabis(if that even counts).
The weekend before this experiment I had planned on getting some shrooms for that Saturday night, but that had fell through. I spent a good portion of Sunday doing some research on shrooms, I had done previous research but it had been a while so I was just refreshing my memory. After looking at the mushroom section I somehow wandered over to the nutmeg section and from there the morning glory section where I proceeded to read everything I could about it for the next 6 hours, I was fascinated and ended my night by purchasing from an online source that I had previously had good results purchasing salvia from.
I continued reading about the seeds until Thursday when they arrived at my apartment. In anticipation that they would arrive I hadn't eaten that day except for an orange early that morning. Excited, I headed to the store to purchase a food chopper (a little jar with a spring loaded lip with razors attached to it), bottled water, and some applesauce. Returning home, I began to prepare. After all my research I had decided that for my first experiment with the seeds I would grind them, soak them in water, drink the water and then eat the leftover mush with applesauce. I had read about all the nausea and heard that if you only drank the water much of that could be avoided, but I also read that it was much more effective if you ate the seed mush too, well I read varying accounts but decided that I might as well start with the most surefire way to get affects.
I started with only 75 seeds to see how my body would react. I chopped them up in the chopping device, which I realized wasn't really up to par with how I expected it to work, soaked them for 20 minutes and then drank the water, I added a little sugar and it wasn't really as bad as I expected, I then ate the mush with applesauce, which was a little worse then the water had been but not hard to get down at all.
I waited. After about 5 or 10 minutes I started to feel something, but wasn't sure if this was all in my head or not and continued waiting. While I was waiting I chopped up and began soaking the remaining 150 seeds.  After about 30 minutes the nausea began, but wasn't anything too horrible. I waited a full hour before consuming the remaining 150 since I decided that I could handle them. This time I got the liquid down ok by chasing with orange juice. I could not manage to eat all the mush mixed with the applesauce this time though, the resulting nausea from the first 75 seeds was causing me to start gagging on it after getting the first half down.
Again, I waited, now having almost 250 seeds in me. I was already feeling a little 'different' from the first 75 and this just kept intensifying for the next hour, along with the nausea. Within a half hour of eating the seeds I needed to lie down as my stomach was in quite a bit of pain. Along with this I had a slight headache, which had started after the first 75, but never got too bad throughout the entire experience. I decided to take 1 Dramamine tablet. I laid in bed for about an hour since I thought I was surely puke if I didn't, and I wanted to avoid this, not so much because vomiting isn't a very pleasant activity, but more because I wanted to let the seeds digest and get into my system. I was also feeling the sedative properties of the LSA, as my limbs were getting heavy. At about 5:30 the nausea was still bothering me but it was quite a bit better.
The following is one of the most enjoyable parts of the night. I went out into my living room and put RadioHead into my stereo. I laid down on the couch with the remote and began to stare at things to see if anything looked different. I didn't really notice any visual hallucinations as I had previously had on shrooms, things just looked very slightly different. As I lay there I began to 'feel' the music. It was amazing, I lay there and stared at the patterns on the couch as the music penetrated every part of my being. It was almost orgasmic, as I lay there and kind of swayed with it, moving my body very slowly around, and kept turning the music up louder and louder.
Sadly, this didn't last too long though, as my roommate S got home and I had to tell her what I had been experiencing, mainly terrible nausea up until that point. S made some tuna and asked if I wanted some, I hadn't eaten all day so I decided to make a very small sandwich. This was a very bad idea, for the next few hours I was in pretty terrible pain and went in my room to fall in and out of sleep, which was quite pleasant oddly enough despite the pain my body was in. I think I had several strange dreams during this time but don't remember them.
At about 8:30 or so S returned home (I guess she had gone out somewhere) with her friend E. They asked how I was doing and I told them 'terrible.' They told me to come drag my foof chair (giant beanbag thing I had been sleeping on) out in the living room and watch the movie 'Thirteen' with them. My stomach had settled a bit to about how it was when I was listening to music earlier, so I agreed. The next 2 hours watching the movie wasn't too out of the ordinary, I just noticed that the movie looked 'trippy' and I felt slightly euphoric. Kind of hard to describe, I wasn't really 'high,' and remained clear-headed, but I had a nice little body buzz I guess you could say.
After the movie they left and I was actually able to eat some food without my stomach complaining, even ate some pizza. The rest of the night was pretty uneventful, just had some other friends come over and we sat around and talked and played Nintendo. I continued to have the same body buzz until about 2:30am, which means the effects lasted about 11 hours from time of ingestion, and went to bed at about 4:00am having no trouble sleeping at all.
Today is the day after and I am noticing no ill side effects, I feel just great. Despite the overly negative experience yesterday, for some reason I think fondly of it, and I do think that these little black seeds merit further experimentation. I think I need a higher dosage of the LSA, but also need to find a way to reduce nausea a great deal, perhaps an extract.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


devClub's mandate is to provide students of the University of Manitoba with an opportunity to gain some coding experience, learn various engines, softwares, and consoles. This group will also be opened to students who are just interested and would like to join.
Our meetings are usually every Wednesday at 6pm


In most cases the probe can automatically determine the JTAG configuration. It does this with a quick test when the JTAG interface is first initialized. In some cases, it might be necessary to declare the JTAG connection details by writing a JTAG descriptor to the MEP_JTAG_DIMENSION buffer. The format of the JTAG descriptor consists of the number of TAPs in the chain, followed by a sequence of numbers to specify how many TAPIR bits are in each TAP. When a descriptor is declared in this way, the probe disables the automatic detection process and uses the specified descriptor to manage the scan chain.
CntTAPs, CntIR1, CntIR2, ..., CntIRn
Example:
ew MEP_JTAG_DIMENSION = 2, 5, 7 // There are 2 TAPs, one has 5 IR bits,
one has 7
The MEP_JTAG_INITx descriptors can be used to define special JTAG initialization operations required by certain devices. The INIT0 descriptor, if defined, is scanned through right after the JTAG reset cycle completes, but before the standard JTAG initialization performed by Sourcery Probe. The second, if defined, is scanned through right after the standard JTAG initialization performed by the Sourcery Probe.
On most boards these can both be omitted. The Sourcery Probe initialization script template includes comments showing where these are typically used in the initialization process for those boards that require something special.
When used, the format is a list of 0-N Scan Operation frames:
ew MEP_JTAG_INIT0 = <scan-op> [ , <scan-op> ] ...
ew MEP_JTAG_INIT1 = <scan-op> [ , <scan-op> ] ...
ew MEP_JTAG_INIT0 = 0 // disable INIT0 descriptor
ew MEP_JTAG_INIT1 = 0 // disable INIT1 descriptor
Each scan-op frame is a free-form data buffer in the following format:
FF0SNCNT [ , SCANDATA ] [ , SCANDATA ]...
FF0SNCNT is a 32-bit word in big endian format, with eight flag bits in the MS bits and 20 bit scan count in the LS bits.
Table 3-10. MEP_JTAG_INIT0 and MEP_JTAG_INIT1 Field Descriptions
SCANDATA is defined as an array of 32-bit words, where the LSB of the first word is shifted into TDI and out of TDO, then higher order bits from that word, then LSB of the next word, and so on. If the final word has less than 32 bits, those final bits are in the LS bit positions of the final word. The number of words of SCANDATA depends on the bit specified in the FF0SNCNT control word.
The MEP_JTAG_SCAN and MEP_JTAG_SCAN_TAP descriptors can be used to define special JTAG initialization operations required by certain devices. These descriptors are similar to the MEP_JTAG_INITx descriptors except that they perform their function immediately, unlike the MEP_JTAG_INITx descriptors that are preset in advance and are then used during JTAG initialization.
When used, the format is as follows:
ew MEP_JTAG_RESET = jrmode // reset JTAG in mode 0,1,2
0 Reset mode based on IJUT option
1 Reset JTAG via TRST* signal
2 Reset JTAG via 5xTMS=1 cycles
ew MEP_JTAG_UNRESET = jimode // unreset JTAG and initialize in mode 0,1,2,4,8
0 unreset, no initialization
1 Enable multi-TAP support (see table below)
2 Enable bypass test
4 Enable multi-TAP auto detection
8 Enable multi-TAP using MAJIC_JTAG_SCAN_DIM
MT MT_AUTO MT_SDEF Description
-- ------- ------- -----------------------
0 x x Whole chain mode (multi-TAP support is disabled)
1 0 0 Multi-TAP support using MEP_JTAG_DIMENSION if defined, else auto detect
1 0 1 Multi-TAP support using MEP_JTAG_DIMENSION if defined, else single TAP or whole chain mode
1 1 x Multi-TAP support, using automatic detection.
ew MEP_JTAG_SCAN = scan-list // perform the specified list of scan operations on
the default TAP; i.e., the TAP selected with the
IJTS option.
ew MEP_JTAG_SCAN_TAP | (TAP << 4)= scan-list // perform the specified list of scan operations on
the specific TAP
dw MEP_JTAG_SCAN // displays the results from last ew MEP_JTAG_SCAN
or MEP_JTAG_SCAN_TAP
dw MEP_JTAG_SCAN_TAP // displays the results from last ew MEP_JTAG_SCAN
or MEP_JTAG_SCAN_TAP
Each scan-list frame is a free-form data buffer in the following format:
FF0SNCNT [ , SCANDATA ] [ , SCANDATA ]...
FF0SNCNT is a 32-bit word in big endian format, with eight flag bits in the MS bits shown in the table below and 20 bit scan count in the LS bits.
Table 3-11. Scan-List Field Descriptions


Imaging Partitions from Volume Groups
To access individual partitions you must use a write-able image, so only use a COPY of the original image, not the actual initial image.
Use mmls
to determine the initial partitions.
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
00: -----<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER> Primary Table (#0)
01: -----<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER> Unallocated
02: 00:00<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER> Linux RAID (0xFD)
03: 00:01<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER> Linux RAID (0xFD)
04: -----<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER> Unallocated
We already know that slot 00:00 is the boot partition and is running ext3. What we’re interested in is slot 00:01 which is a volume group. We will need to mount this locally using losetup. This will involve requiring an offset number. The listing above provides the offset to the beginning of the volume in 512-byte sectors. You will need to multiply the sectors by 512 to get the byte offset.
losetup /dev/loop0 data001.bin -o 123379200
Now that it’s mounted we perform a pvscan. Hopefully we’ll see that it had scanned our loop device to find a volume.
PV /dev/loop0 VG vg00 lvm2 [232.75 GB / 108.75 GB free]
It has found the ‘vg00’ volume group. We can now run lvdisplay
to list the partitions.
--- Logical volume ---
LV Name /dev/vg00/root
VG Name vg00
LV UUID d7vKzZ-y6BJ-ypEA-0mTy-NMqa-6CkT-wejIHQI
LV Write Access read/write
LV Status available
# open 0
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Name /dev/vg00/home
VG Name vg00
LV UUID I7deX9v-FA0c-MwzE-zlmN-SBQb-cjje-I7deX9v
LV Write Access read/write
LV Status available
# open 0
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
--- Logical volume ---
LV Name /dev/vg00/services
VG Name vg00
LV UUID d7vKzZ-y6BJ-Uinn-dj94-0mTy-837a-wejIHQI
LV Write Access read/write
LV Status available
# open 0
LV Size 50.00 GB
Current LE 1600
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:2
--- Logical volume ---
LV Name /dev/vg00/usr
VG Name vg00
LV UUID d7vKzZ-UgTj-0JZx-7cKH-NxDc-aF83-Md1GTE
LV Write Access read/write
LV Status available
# open 0
LV Size 4.00 GB
Current LE 128
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:3
--- Logical volume ---
LV Name /dev/vg00/var
VG Name vg00
LV UUID r2uIPW-N057-yLMO-nH3X-OyGt-XfBf-xs22Iv
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 64
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:4
--- Logical volume ---
LV Name /dev/vg00/swap
VG Name vg00
LV UUID V6IVEW-Bc8O-5dx3-0ccF-r1qn-EJDv-d2Egr1
LV Write Access read/write
LV Status available
# open 0
LV Size 16.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:5
We can now start creating images of the individual partitions.
dcfldd if=/dev/vg00/root of=test.root.bin hash=md5,sha1 md5log=test.root.md5 sha1log=test.root.sha1
This method should work for systems with volume groups across multiple images.


Back
Hello 👋, I can help you with some cryptographic works (like sending your friend a secret 🤫)
Generate keys
No! I have mine


Backdoor:
After configuring the object to be 'hidden':- Grant the User-Force-Change-Password (or GenericAll) right on CN=AdminSDHolder,CN=System,DC=domain,...
- Every 60 minutes, this permission is cloned to every sensitive/protected AD object through SDProp
- Attacker "hides" their account using methods under Stealth and Hiding the DACL
Result:
Attacker force resets the password for any adminCount=1 account


I am pursuing Master’s in AI at the University of Amsterdam. Along with the coursework, I conduct research on video understanding at the VISLab advised by Prof. dr. Cees Snoek and Dr. Makarand Tapaswi .
In the past, I’ve been a Research Fellow at Wadhwani AI where I primarily worked on estimating infant anthropometry from a monocular video. During the pandemic, I also worked on using cough as a biomarker to detect presence of CoVID-19.
Before that, I completed my Bachelor’s in Mathematics at IIT Kanpur where I worked with Dr. Piyush Rai and Dr. Swaprava Nath.
Selected publications
2022
CVPR 2023
Also presented at Workshop on Understanding Foundation Models at ICLR 2023
ECCV, 2022 (Tel Aviv, Israel)
VIPrior Workshop, ECCV, 2022 (Tel Aviv, Israel)
2021
WSDM Demos, 2021 (Virtual event, Israel)
Work done during Internship at Adobe Research (India) in 2018.
Selected projects
ML Reproducibility Challenge, ReScience Journal
Invited to present at Journal Showcase Poster Session @ NeurIPS 2022.
Best poster award in the Interpretability course at UvA
AI in the real-world
ArXiv, 2021 (Mumbai, India)
Media credits: Wadhwani AI
Underlying Model: SMIL (Nicholas Hesse et. al)
Copyrights: Wadhwani AI
Miscellaneous
- Service: Emergency reviewer at ECCV 2022, Reviewer at CVPR 2023
- Teaching: TA for Deep Learning (DL1) at the University of Amsterdam
- Invited lecture for the Fairness in AI course at the University of Amsterdam
news
| Mar 5, 2023 | A shorted version of our paper got accepted to ME-FoMo Workshop ICLR 2023! |
|---|---|
| Feb 27, 2023 | Our paper on time in video-language models got accepted to CVPR 2023! |
| Jul 1, 2022 | Our paper got accepted to ECCV 2022! |
| Apr 10, 2022 | Our paper recieved the Best Paper Award at MLRC 2021! |
| Jul 16, 2021 | Today is my last day at Wadhwani AI after completing incredible 2 years. |


StackOverFlow Lite
Register
Username
Email
Password
OR Register With
Google
Facebook
Login
BlakOps © 2018


Chat: FMSPy examples
More info about FMSPy at
site
.
You need JavaScript & Flash to run this example.


You need to add a credit card before to pay with it.
Loading...
You will need to login to your PayPal account to complete this transaction. We will open a new tab with PayPal for you. If you use any pop-up blockers, please disable them to continue.


Born in a humble town in Kenya,Malindi. For real life is just a cycle in which am gooing throuh like right now. I had alot of friends in life but eachone of them went while they were living, they left me one by one and some of them died in which they left a very big hole which is blackhearted you know. But actually i have benn here still leaving and getting the most out-of my life you know. Ijust follow my own league and tyr sometime challenge the older-ones that is to know more about life in which in thier passpective they look so fantanstic although they have got troubles on them.
dealt with making the history in my-highschool period.
dealt with training kids on basics of programming ,with tools as scratch
a member of the Rotaract club jkuat chapter
A member in which i had to make alot of myself look more active in websites.
Within the period he did freelance activities such as creating wordpress websites for institutions, attended bootcamps at ihub , where much interest was developed about coding and cyber security.


Advanced Web Page by Anthony
Prove you can use: Tables, Lists, Forms
Make several tables one must be 3x4
Fav. foods
- KD
- meat
Can you make a list of types of foods [meat, vegetables etc]
with example lists inside the other list!.
The following are all from elements [add to them]:


| No | Vessel Name | Destination | Status | Concession | Product | Planed Delivery | Actual Delivery | Delivery Tonnage | Delivered Tonnage | |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Vessel 1 | PT.Wilmar Nabati Indonesia | Gresik | Product A | January 2017 – March 2017 | MUST BE FILLED! |
2,000,000 mt | 32,000,000 mt | ||
| 2 | Vessel 2 | PT Mitra Bahari Sentosa | Jakarta | Product A | January 2017 – March 2017 | MUST BE FILLED! |
2,000,000 mt | 32,000,000 mt |


B.Tech. II (CO) Semester - 3 |
L |
T |
P |
C |
MH203 : DISCRETE MATHEMATICS (IS-III) |
3 |
1 |
0 |
4 |
(08 Hours) |
||||
Graphs, Definition & basic concepts of finite & infinite graph, Incidence & Degree, Isomorphism, Subgraph, Walk, Path & circuits, Operations on graphs, connected graph, Disconnected graph & components, Complete graph, Regular graph, Bipertite graph, Euler’s graph, Hamiltonian paths & Circuits, Weighted graphs, Applications, Directed & Undirected graphs, Connectivity of graphs. |
||||
(08 Hours) |
||||
Definition & properties of trees, Pendent vertices in a tree, Distance between two vertices Centre, Radius & diameter of a tree, Rooted & binary trees, Representation of Algebraic structure by Binary trees, Binary search trees, Spanning trees & fundamental circuits. |
||||
(08 Hours) |
||||
Definition & Basic properties, Graphs of relation, Matrices of relation, Equivalence relation, Equivalence classes, Partition, Partial ordered relation, Posets, Hasse diagram, Upper bounds, Lower bound, GLB & LUB of sets, Definition & properties of Lattice, Sub lattice, Distributive & modular lattices, complemented & Bounded Lattices, complete lattices & Boolean algebra |
||||
(08 Hours) |
||||
Basic properties of Group, Groupoid, semigroup & monoid, Abelian group, Subgroup, Cosets, Normal subgroup, Lagrange’s theorem, Cyclic group, Permutation group, Homomorphism & Isomorphism of groups, Basic properties, error correction & detection code. |
||||
(12 Hours) |
||||
Propositions, logical operators & propositional algebra, Predicates & quantifiers, Interaction of quantifiers with logical operators, Logical interference & proof techniques, Formal verification of computer programs (elements of Hoare logic). |
||||
(14 Hours) |
||||
(Total Contact Time: 44 Hours + 14 Hours = 58 Hours) |
||||
BOOKS RECOMMENDED |
||||
1). Rosen K.H., “Discrete Mathematics and Its Applications”, 6/E, MGH, 2006. |