📅 (2022-03-28 16:32:08 UTC)
# Packages matching: installed # Name # Installed # Synopsis base-bigarray base base-threads base base-unix base conf-findutils 1 Virtual package relying on findutils conf-gmp 4 Virtual package relying on a GMP lib system installation coq dev Formal proof management system dune 3.0.3 Fast, portable, and opinionated build system ocaml 4.09.1 The OCaml compiler (virtual package) ocaml-base-compiler 4.09.1 Official release 4.09.1 ocaml-config 1 OCaml Switch Configuration ocamlfind 1.9.3 A library manager for OCaml zarith 1.12 Implements arithmetic and logical operations over arbitrary-precision integers # opam file: opam-version: "2.0" synopsis: "A library of Coq definitions, theorems, and tactics" description: "A collection of theories and plugins that may be useful in other Coq developments." maintainer<EMAIL_ADDRESS>authors: "Gregory Malecha" license: "BSD-2-Clause" tags: "logpath:ExtLib" homepage: "https://github.com/coq-community/coq-ext-lib" bug-reports: "https://github.com/coq-community/coq-ext-lib/issues" depends: [ "ocaml" "coq" {>= "8.8"} ] build: [make "-j%{jobs}%" "theories"] run-test: [make "-j%{jobs}%" "examples"] install: [make "install"] dev-repo: "git+https://github.com/coq-community/coq-ext-lib.git" url { src: "https://github.com/coq-community/coq-ext-lib/archive/v0.11.5.tar.gz" checksum: [ "md5=054577e702e9cf596f37aa28b0b0394c" "sha512=84b79097c9ad6823024a0af875c07389accb597337527f905f067c7fa39a7c170239edb68d2a45b102714b6f6860cc7a7f937340824a688df19b4c35aa2e075c" ] }
true
Dry install with the current Coq version:
opam install -y --show-action coq-ext-lib.0.11.5 coq.dev
Dry install without Coq/switch base, to test if the problem was incompatibility with the current Coq/OCaml version:
true
opam list; echo; ulimit -Sv 4000000; timeout 4h opam install -y --deps-only coq-ext-lib.0.11.5 coq.dev
opam list; echo; ulimit -Sv 16000000; timeout 4h opam install -y -v coq-ext-lib.0.11.5 coq.dev
# Packages matching: installed # Name # Installed # Synopsis base-bigarray base base-threads base base-unix base conf-findutils 1 Virtual package relying on findutils conf-gmp 4 Virtual package relying on a GMP lib system installation coq dev Formal proof management system dune 3.0.3 Fast, portable, and opinionated build system ocaml 4.09.1 The OCaml compiler (virtual package) ocaml-base-compiler 4.09.1 Official release 4.09.1 ocaml-config 1 OCaml Switch Configuration ocamlfind 1.9.3 A library manager for OCaml zarith 1.12 Implements arithmetic and logical operations over arbitrary-precision integers [NOTE] Package coq is already installed (current version is dev). The following actions will be performed: - install coq-ext-lib 0.11.5 <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><> Processing 1/1: [coq-ext-lib.0.11.5: http] [coq-ext-lib.0.11.5] downloaded from https://github.com/coq-community/coq-ext-lib/archive/v0.11.5.tar.gz Processing 1/1: <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> Processing 1/2: [coq-ext-lib: make theories] + /home/bench/.opam/opam-init/hooks/sandbox.sh "build" "make" "-j4" "theories" (CWD=/home/bench/.opam/ocaml-base-compiler.4.09.1/.opam-switch/build/coq-ext-lib.0.11.5) - coq_makefile -f _CoqProject -o Makefile.coq - make -f Makefile.coq - make[1]: Entering directory '/home/bench/.opam/ocaml-base-compiler.4.09.1/.opam-switch/build/coq-ext-lib.0.11.5' - COQDEP VFILES - COQC theories/Core/RelDec.v - COQC theories/Tactics/Injection.v - COQC theories/Tactics/Forward.v - COQC theories/Core/Any.v - File "./theories/Core/Any.v", line 13, characters 0-66: - Warning: The default value for hint locality is currently "local" in a - section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding hints outside of sections without - specifying an explicit locality attribute is therefore deprecated. It is - recommended to use "export" whenever possible. Use the attributes #[local], - #[global] and #[export] depending on your choice. For example: "#[export] - Hint Unfold foo : bar." [deprecated-hint-without-locality,deprecated] - COQC theories/Core/EquivDec.v - COQC theories/Core/Decision.v - COQC theories/Structures/Functor.v - COQC theories/Structures/BinOps.v - COQC theories/Structures/CoFunctor.v - COQC theories/Structures/CoMonad.v - COQC theories/Structures/Monoid.v - COQC theories/Data/PreFun.v - COQC theories/Data/Unit.v - COQC theories/Data/Bool.v - COQC theories/Data/Checked.v - COQC theories/Data/Eq/UIP_trans.v - COQC theories/Data/ListNth.v - COQC theories/Data/LazyList.v - COQC theories/Data/ListFirstnSkipn.v - COQC theories/Data/N.v - COQC theories/Data/Positive.v - File "./theories/Data/ListNth.v", line 17, characters 24-33: - Warning: Notation lt_S_n is deprecated since 8.16. - The Arith.Lt file is obsolete. Use the bidirectional version Nat.succ_lt_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 17, characters 24-33: - Warning: Notation lt_S_n is deprecated since 8.16. - The Arith.Lt file is obsolete. Use the bidirectional version Nat.succ_lt_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 26, characters 23-32: - Warning: Notation Le.le_S_n is deprecated since 8.16. - The Arith.Le file is obsolete. Use Nat.succ_le_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 26, characters 23-32: - Warning: Notation Le.le_S_n is deprecated since 8.16. - The Arith.Le file is obsolete. Use Nat.succ_le_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 48, characters 24-33: - Warning: Notation Le.le_S_n is deprecated since 8.16. - The Arith.Le file is obsolete. Use Nat.succ_le_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 48, characters 24-33: - Warning: Notation Le.le_S_n is deprecated since 8.16. - The Arith.Le file is obsolete. Use Nat.succ_le_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 55, characters 12-25: - Warning: Notation plus_0_r is deprecated since 8.16. - The Arith.Plus file is obsolete. Use Nat.add_0_r instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 55, characters 12-25: - Warning: Notation plus_0_r is deprecated since 8.16. - The Arith.Plus file is obsolete. Use Nat.add_0_r instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 55, characters 12-25: - Warning: Notation plus_0_r is deprecated since 8.16. - The Arith.Plus file is obsolete. Use Nat.add_0_r instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 56, characters 15-32: - Warning: Notation plus_Snm_nSm is deprecated since 8.16. - The Arith.Plus file is obsolete. Use Nat.add_succ_r (and symmetry of equality) instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 56, characters 15-32: - Warning: Notation plus_Snm_nSm is deprecated since 8.16. - The Arith.Plus file is obsolete. Use Nat.add_succ_r (and symmetry of equality) instead. - [deprecated-syntactic-definition,deprecated] - COQC theories/Data/Prop.v - File "./theories/Data/ListNth.v", line 56, characters 15-32: - Warning: Notation plus_Snm_nSm is deprecated since 8.16. - The Arith.Plus file is obsolete. Use Nat.add_succ_r (and symmetry of equality) instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 64, characters 19-28: - Warning: Notation Le.le_0_n is deprecated since 8.16. - The Arith.Le file is obsolete. Use Nat.le_0_l instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 64, characters 19-28: - Warning: Notation Le.le_0_n is deprecated since 8.16. - The Arith.Le file is obsolete. Use Nat.le_0_l instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 66, characters 21-30: - Warning: Notation Le.le_n_S is deprecated since 8.16. - The Arith.Le file is obsolete. Use Nat.succ_le_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 66, characters 21-30: - Warning: Notation Le.le_n_S is deprecated since 8.16. - The Arith.Le file is obsolete. Use Nat.succ_le_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 75, characters 12-22: - Warning: Notation lt_0_Sn is deprecated since 8.16. - The Arith.Lt file is obsolete. Use Nat.lt_0_succ instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 75, characters 12-22: - Warning: Notation lt_0_Sn is deprecated since 8.16. - The Arith.Lt file is obsolete. Use Nat.lt_0_succ instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 76, characters 12-21: - Warning: Notation lt_n_S is deprecated since 8.16. - The Arith.Lt file is obsolete. Use the bidirectional version Nat.succ_lt_mono instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/ListNth.v", line 76, characters 12-21: - Warning: Notation lt_n_S is deprecated since 8.16. - The Arith.Lt file is obsolete. Use the bidirectional version Nat.succ_lt_mono instead. - [deprecated-syntactic-definition,deprecated] - COQC theories/Data/Stream.v - COQC theories/Data/Z.v - COQC theories/Data/PPair.v - File "./theories/Data/ListFirstnSkipn.v", line 48, characters 0-91: - Warning: The default value for rewriting hint locality is currently "local" - in a section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding rewriting hints outside of sections - without specifying an explicit locality attribute is therefore deprecated. It - is recommended to use "export" whenever possible. Use the attributes - #[local], #[global] and #[export] depending on your choice. For example: - "#[export] Hint Rewrite foo : bar." - [deprecated-hint-rewrite-without-locality,deprecated] - COQC theories/Programming/Injection.v - File "./theories/Data/ListFirstnSkipn.v", line 93, characters 0-86: - Warning: The default value for rewriting hint locality is currently "local" - in a section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding rewriting hints outside of sections - without specifying an explicit locality attribute is therefore deprecated. It - is recommended to use "export" whenever possible. Use the attributes - #[local], #[global] and #[export] depending on your choice. For example: - "#[export] Hint Rewrite foo : bar." - [deprecated-hint-rewrite-without-locality,deprecated] - COQC theories/Programming/Eqv.v - COQC theories/Programming/Le.v - File "./theories/Programming/Eqv.v", line 12, characters 0-114: - Warning: The default value for instance locality is currently "local" in a - section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding instances outside of sections without - specifying an explicit locality attribute is therefore deprecated. It is - recommended to use "export" whenever possible. Use the attributes #[local], - #[global] and #[export] depending on your choice. For example: "#[export] - Instance Foo : Bar := baz." [deprecated-instance-without-locality,deprecated] - File "./theories/Programming/Le.v", line 11, characters 0-126: - Warning: The default value for instance locality is currently "local" in a - section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding instances [...] truncated a section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding rewriting hints outside of sections - without specifying an explicit locality attribute is therefore deprecated. It - is recommended to use "export" whenever possible. Use the attributes - #[local], #[global] and #[export] depending on your choice. For example: - "#[export] Hint Rewrite foo : bar." - [deprecated-hint-rewrite-without-locality,deprecated] - File "./theories/Data/Eq.v", line 91, characters 0-31: - Warning: The default value for rewriting hint locality is currently "local" - in a section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding rewriting hints outside of sections - without specifying an explicit locality attribute is therefore deprecated. It - is recommended to use "export" whenever possible. Use the attributes - #[local], #[global] and #[export] depending on your choice. For example: - "#[export] Hint Rewrite foo : bar." - [deprecated-hint-rewrite-without-locality,deprecated] - File "./theories/Data/Eq.v", line 96, characters 0-35: - Warning: The default value for rewriting hint locality is currently "local" - in a section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding rewriting hints outside of sections - without specifying an explicit locality attribute is therefore deprecated. It - is recommended to use "export" whenever possible. Use the attributes - #[local], #[global] and #[export] depending on your choice. For example: - "#[export] Hint Rewrite foo : bar." - [deprecated-hint-rewrite-without-locality,deprecated] - COQC theories/Data/Pair.v - COQC theories/Data/Sum.v - COQC theories/Data/POption.v - File "./theories/Data/Nat.v", line 12, characters 13-26: - Warning: Notation EqNat.beq_nat is deprecated since 8.16. - Use Nat.eqb instead. [deprecated-syntactic-definition,deprecated] - COQC theories/Recur/Relation.v - COQC theories/Tactics/Equality.v - File "./theories/Data/Nat.v", line 30, characters 28-50: - Warning: Notation EqNat.beq_nat_true_iff is deprecated since 8.16. - Use Nat.eqb_eq instead. [deprecated-syntactic-definition,deprecated] - File "./theories/Data/Nat.v", line 30, characters 28-50: - Warning: Notation EqNat.beq_nat_true_iff is deprecated since 8.16. - Use Nat.eqb_eq instead. [deprecated-syntactic-definition,deprecated] - COQC theories/Tactics/Cases.v - File "./theories/Data/POption.v", line 83, characters 0-34: - Warning: The default value for instance locality is currently "local" in a - section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding instances outside of sections without - specifying an explicit locality attribute is therefore deprecated. It is - recommended to use "export" whenever possible. Use the attributes #[local], - #[global] and #[export] depending on your choice. For example: "#[export] - Instance Foo : Bar := baz." [deprecated-instance-without-locality,deprecated] - File "./theories/Data/POption.v", line 88, characters 0-38: - Warning: The default value for instance locality is currently "local" in a - section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding instances outside of sections without - specifying an explicit locality attribute is therefore deprecated. It is - recommended to use "export" whenever possible. Use the attributes #[local], - #[global] and #[export] depending on your choice. For example: "#[export] - Instance Foo : Bar := baz." [deprecated-instance-without-locality,deprecated] - COQC theories/Structures/EqDep.v - COQC theories/Core/CmpDec.v - COQC theories/Data/Fun.v - COQC theories/Structures/Monad.v - COQC theories/Structures/Traversable.v - COQC theories/Data/PList.v - File "./theories/Structures/Monad.v", line 56, characters 2-39: - Warning: Declaring a scope implicitly is deprecated; use in advance an - explicit "Declare Scope monad_scope.". [undeclared-scope,deprecated] - COQC theories/Structures/FunctorLaws.v - COQC theories/Structures/Reducible.v - COQC theories/Structures/MonadCont.v - COQC theories/Structures/MonadExc.v - COQC theories/Structures/MonadFix.v - COQC theories/Structures/MonadZero.v - File "./theories/Data/PList.v", line 219, characters 0-32: - Warning: The default value for instance locality is currently "local" in a - section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding instances outside of sections without - specifying an explicit locality attribute is therefore deprecated. It is - recommended to use "export" whenever possible. Use the attributes #[local], - #[global] and #[export] depending on your choice. For example: "#[export] - Instance Foo : Bar := baz." [deprecated-instance-without-locality,deprecated] - COQC theories/Structures/MonadPlus.v - COQC theories/Structures/MonadReader.v - COQC theories/Structures/MonadWriter.v - COQC theories/Structures/MonadState.v - COQC theories/Structures/MonadTrans.v - COQC theories/Data/Option.v - COQC theories/Data/Lazy.v - COQC theories/Data/List.v - COQC theories/Data/String.v - COQC theories/Data/Monads/IdentityMonad.v - COQC theories/Data/Monads/ContMonad.v - File "./theories/Data/Option.v", line 183, characters 0-34: - Warning: The default value for rewriting hint locality is currently "local" - in a section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding rewriting hints outside of sections - without specifying an explicit locality attribute is therefore deprecated. It - is recommended to use "export" whenever possible. Use the attributes - #[local], #[global] and #[export] depending on your choice. For example: - "#[export] Hint Rewrite foo : bar." - [deprecated-hint-rewrite-without-locality,deprecated] - COQC theories/Tactics/EqDep.v - COQC theories/Structures/Maps.v - COQC theories/Structures/Monads.v - COQC theories/Data/Map/FMapPositive.v - COQC theories/Data/Set/SetMap.v - COQC theories/Tactics.v - File "./theories/Data/String.v", line 97, characters 11-19: - Warning: Notation neq_0_lt is deprecated since 8.16. - The Arith.Lt file is obsolete. Use the bidirectional version Nat.neq_0_lt_0 (together with Nat.neq_sym) instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Data/String.v", line 97, characters 11-19: - Warning: Notation neq_0_lt is deprecated since 8.16. - The Arith.Lt file is obsolete. Use the bidirectional version Nat.neq_0_lt_0 (together with Nat.neq_sym) instead. - [deprecated-syntactic-definition,deprecated] - COQC theories/Structures/MonadLaws.v - COQC theories/Data/Fin.v - COQC theories/Data/SigT.v - COQC theories/Programming/Show.v - File "./theories/Data/SigT.v", line 42, characters 0-32: - Warning: The default value for rewriting hint locality is currently "local" - in a section and "global" otherwise, but is scheduled to change in a future - release. For the time being, adding rewriting hints outside of sections - without specifying an explicit locality attribute is therefore deprecated. It - is recommended to use "export" whenever possible. Use the attributes - #[local], #[global] and #[export] depending on your choice. For example: - "#[export] Hint Rewrite foo : bar." - [deprecated-hint-rewrite-without-locality,deprecated] - COQC theories/Programming/Extras.v - COQC theories/Tactics/MonadTac.v - COQC theories/Data/Monads/StateMonad.v - File "./theories/Programming/Show.v", line 64, characters 2-37: - Warning: Declaring a scope implicitly is deprecated; use in advance an - explicit "Declare Scope show_scope.". [undeclared-scope,deprecated] - File "./theories/Programming/Show.v", line 180, characters 23-33: - Warning: Notation lt_O_Sn is deprecated since 8.16. - The Arith.Lt file is obsolete. Use Nat.lt_0_succ instead. - [deprecated-syntactic-definition,deprecated] - File "./theories/Programming/Show.v", line 180, characters 4-15: - Error: No such hypothesis: H - - make[2]: *** [Makefile.coq:790: theories/Programming/Show.vo] Error 1 - make[2]: *** Waiting for unfinished jobs.... - make[1]: *** [Makefile.coq:408: all] Error 2 - make[1]: Leaving directory '/home/bench/.opam/ocaml-base-compiler.4.09.1/.opam-switch/build/coq-ext-lib.0.11.5' - make: *** [Makefile:7: theories] Error 2 [ERROR] The compilation of coq-ext-lib failed at "/home/bench/.opam/opam-init/hooks/sandbox.sh build make -j4 theories". #=== ERROR while compiling coq-ext-lib.0.11.5 =================================# # context 2.0.6 | linux/x86_64 | ocaml-base-compiler.4.09.1 | file:///home/bench/run/opam-coq-archive/released # path ~/.opam/ocaml-base-compiler.4.09.1/.opam-switch/build/coq-ext-lib.0.11.5 # command ~/.opam/opam-init/hooks/sandbox.sh build make -j4 theories # exit-code 2 # env-file ~/.opam/log/coq-ext-lib-948-0a5907.env # output-file ~/.opam/log/coq-ext-lib-948-0a5907.out ### output ### # [...] # File "./theories/Programming/Show.v", line 180, characters 23-33: # Warning: Notation lt_O_Sn is deprecated since 8.16. # The Arith.Lt file is obsolete. Use Nat.lt_0_succ instead. # [deprecated-syntactic-definition,deprecated] # File "./theories/Programming/Show.v", line 180, characters 4-15: # Error: No such hypothesis: H # # make[2]: *** [Makefile.coq:790: theories/Programming/Show.vo] Error 1 # make[2]: *** Waiting for unfinished jobs.... # make[1]: *** [Makefile.coq:408: all] Error 2 # make[1]: Leaving directory '/home/bench/.opam/ocaml-base-compiler.4.09.1/.opam-switch/build/coq-ext-lib.0.11.5' # make: *** [Makefile:7: theories] Error 2 <><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> +- The following actions failed | - build coq-ext-lib 0.11.5 +- - No changes have been performed # Run eval $(opam env) to update the current shell environment 'opam install -y -v coq-ext-lib.0.11.5 coq.dev' failed. The middle of the output is truncated (maximum 20000 characters)
No files were installed.
true


Pizza Mtaani is a leading pizza outlet in Kayole serving several nairobi
eastlands
by providing efficient way of placing an order through online application!
We offer variety of pizza which are preferred by majority of clients
We offer discount to customers buying in bulk


Welcome to iChanger 2
Hello and Welcome to iChanger 2, the themeing platform for unjailbroken devices(still usable on jailbroken devices). Head to the 'How To' tab to learn how to theme apps, then visit 'Apps' to start theming!
-
AppStore


Click here to find out more about the art of origami.
You can also check out Origami Instructions, a great website with lots of info about how to start an origami project.
Go back to home.


Shortcuts for the program
| Shortcut | Usage |
| F2 | To toggle between the language of typing |
| Ctrl+R | To display random word panel |
| Ctrl+H | To display history of words searched and displayed on random word |
| F1 | Display help |
| Shift+F1 | Display information about application |
| Alt+T | Change the interface of application to telugu |
| Alt+E | Change the interface of application to english |
| Alt+X | Exit the application |


B L O G
Hey!
Sorry I haven't posted in like 4 days, I've just been really busy.
I haven't done anything in the past few days, just played games and getting everything set up with the PC. I have been trying to fix an issue where the computer won't turn off - it was due to the WIFI card so I will probably get a TP-Link .
I am now on my school holidays but it is so boring when there is nothing to do, it's too cold to go out so all I can really do is stay indoors which gets really boring after a week. I also have to revise as i'm doing my GCSE's, so there is very little fun to be had other than to game or watch TV.
Anyway, i'm going to sleep cause I am really, really tired so I'll try to post tomorrow!
Sorry I haven't posted in like 4 days, I've just been really busy.
I haven't done anything in the past few days, just played games and getting everything set up with the PC. I have been trying to fix an issue where the computer won't turn off - it was due to the WIFI card so I will probably get a TP-Link .
I am now on my school holidays but it is so boring when there is nothing to do, it's too cold to go out so all I can really do is stay indoors which gets really boring after a week. I also have to revise as i'm doing my GCSE's, so there is very little fun to be had other than to game or watch TV.
Anyway, i'm going to sleep cause I am really, really tired so I'll try to post tomorrow!
- Josh 20/02/2017
Well I managed to get my new PC setup last night so I can post today!
Today is our second to last day of this half-term so I'll break up on Friday. On Saturday, Wolverhampton Wonderers (who I support) will be playing Chelsea in the FA cup which I am going to see! I am really excited!
If you are interested in the specs of my pc, here they are : i5 7600k CPU
GeForce GTX 1060 6gb GPU
750W FSP 80+ Silver PSU
Gigabyte GA-Z270 Gaming K3 Motherboard
Seagate 1TB Firecuda SSHD
I going to do some random stuff so I'll probably post tomorrow.
Today is our second to last day of this half-term so I'll break up on Friday. On Saturday, Wolverhampton Wonderers (who I support) will be playing Chelsea in the FA cup which I am going to see! I am really excited!
If you are interested in the specs of my pc, here they are : i5 7600k CPU
GeForce GTX 1060 6gb GPU
750W FSP 80+ Silver PSU
Gigabyte GA-Z270 Gaming K3 Motherboard
Seagate 1TB Firecuda SSHD
I going to do some random stuff so I'll probably post tomorrow.
- Josh 16/02/2017
Hey!
Well I’m in business studies and it is so boring so I decided to post something to pass the time. Our teacher has a migraine or something so we have a supply teacher and have to revise.
Anyway, My PC is coming today so probably won’t post tomorrow since I will be setting it up! If you are interested in the specs, I’ll post them soon.
I have to go to lunch now so I’ll see you soon!
Well I’m in business studies and it is so boring so I decided to post something to pass the time. Our teacher has a migraine or something so we have a supply teacher and have to revise.
Anyway, My PC is coming today so probably won’t post tomorrow since I will be setting it up! If you are interested in the specs, I’ll post them soon.
I have to go to lunch now so I’ll see you soon!
- Josh 15/02/2017
Sup.
Well today was alright, I had media so that was cool. At the minute, we are making silent films. Today, we filmed four shots and they came out really well. I managed to edit a little today so I will try to get way more done on Thursday - which is my next lesson.
Something BIG is happening tomorrow, MY NEW PC IS COMING! I am so excited!
Anyway, I am going to design the gallery now so yeah - Bye!
Well today was alright, I had media so that was cool. At the minute, we are making silent films. Today, we filmed four shots and they came out really well. I managed to edit a little today so I will try to get way more done on Thursday - which is my next lesson.
Something BIG is happening tomorrow, MY NEW PC IS COMING! I am so excited!
Anyway, I am going to design the gallery now so yeah - Bye!
- Josh 14/02/2017
Well this is my first post so I better introduce myself. So, my name Josh and I like to make and design websites as a hobby. I will post whenever I can – I’ll try to post every day; I probably won't though! Anyway, another hobby I endorse myself in is photography as I love media and want to improve my cinematography and just to generally get more comfortable with handling cameras. If you are interested in my works - then you can find them in the gallery.
- Josh 13/02/2017


Nigerians React As Teni Releases Official Video For Billionaire
by Faderera FaladeNigerian artiste, Teni Akpata has released the video for her most recent single “Billionaire”
“Billionaire” is one of the banger singles in the mouth of music lovers in Nigeria.
The 26-year-old singer is known for dishing out the best hit every time she releases a new single.
Meanwhile, Nigerians have taken to Twitter to react to the video, see reactions below:


To decide which programming language is best for you to learn, please tell us a bit about your career goals:
1. Do you wish to work in Front end development, Back end or both?
2. Do you plan on being a phone app developer? If so, for which platform?
3. Do you wish to exclusively work in website design?
4. Are you totally unsure which direction to go, and need a language that can do it all?
5. Will you be working with large sets of data, perhaps as a Data Analyst or Data Scientist?
Once you submit answer, suggested languages will appear below.


|
Breathe
(Faith Hill) |
|
I
can feel the magic floating in the air
Being with you gets me that way I watch the sunlight dance across your face And I've never been this swept away All my thoughts seem to settle on the breeze When I'm lying wrapped in your arms The whole world just fades away The only thing I hear is the beating of your heart Cause I can feel you breathe It's washing over me Suddenly I'm melting into you There's nothing left to prove Baby all we need is just to be Caught up in the touch The slow and steady rush Baby, isn't that the way that love's supposed to be? I can feel you breathe Just breathe.. In a way I know my heart is waking up As all the walls come tumbling down Closer than I've ever felt before And I know and you know there's no need for words right now Cause I can feel you breathe It's washing over me Suddenly I'm melting into you There's nothing left to prove Baby all we need is just to be Caught up in the touch The slow and steady rush Baby, isn't that the way that love's supposed to be? I can feel you breathe Just breathe.. Caught up in the touch The slow and steady rush Baby, isn't that the way that love's supposed to be? I can feel you breathe Just breathe.. I can feel the magic floating in the air Being with you gets me that way |


{% load staticfiles %} {% load static %}
Web development for today's World
Made with love by the fine folks at FreeHTML5.co
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Made with love by the fine folks at FreeHTML5.co
Far far away, behind the word mountains, far from the countries Vokalia
Far far away, behind the word mountains, far from the countries Vokalia
Far far away, behind the word mountains, far from the countries Vokalia
Far far away, behind the word mountains, far from the countries Vokalia
Far far away, behind the word mountains, far from the countries Vokalia
Far far away, behind the word mountains, far from the countries Vokalia
Far far away, behind the word mountains, far from the countries Vokalia, there live the blind texts.
Read MoreFar far away, behind the word mountains, far from the countries Vokalia, there live the blind texts.
Read MoreFar far away, behind the word mountains, far from the countries Vokalia, there live the blind texts.
Read MoreMade with love by the fine folks at Livewire Web Developments


Never forget when it's time to feed your foliage and quench your plants' thirst.
Water My Plants offers a wide range of fun and unique features.
Built for the sole purpose to help keep your plants healthy and happy, Water My Plants helps to keep track of your plants and when to water them.


Provides encoding of RDF resources, models or DataSets into a developer-friendly JSON form and decoding of the generated format back into RDF. Round-tripping is not guaranteed in all cases but is is possible in most cases if properties are used with consistent ranges.
The typical usage is:
Encoder.get().encode(model, resourcesList, writer)
which uses a default set of encoding rules and no context information. Mapping information can be specified by means of a Context object:
Context context = new Context([baseURL], [ontologyModel]); Encoder.get(context).encode(...);
The ontologyModel provides default label mappings for properties and can tag properties to be hidden or treated as multivalued. See help file.
The other Encoder.get()
options allow specification of a set of encoding rules
via an EncoderPlugin. This is just to ease experimentation during development and the
option is likely to be removed once the rules settle down.


--- title: Courage to Change excerpt: Change is a wonderful thing. Why? Because to change is to learn. It's a chance to build on what works, and then become better at it. It's a chance to achieve better outcomes. date: '2022-09-09 05:47:34 +0100' categories: - Agile - Motivation - Teams image: path: /assets/images/social/courage_to_change.jpg ---
Change is a wonderful thing. Why? Because to change is to learn. It's a chance to build on what works, and then become better at it. It's a chance to achieve better outcomes.
This post was inspired by Esther Derby's newest book 7 Rules for Positive, Productive Change: Micro Shifts, Macro Results. I'm a big fan of her work. Having read other good books about change, including Leading Change by John Kotter, Fearless Change by Mary Lynn Manns and Linda Rising, as well as Heath Brothers' books (Chip Heath, Dan Heath), I wanted to dive into Esther's new book. I found it to be a fresh, well-researched and practical guide about complex change. Change is usually complex with humans in agile organisations :)
On a larger scale, I've been fascinated by change for a long time. I've changed myself many times, not least during this pandemic. I believe the ability to change is a crucial skill in dealing with the challenges of our times, such as the pandemic and the climate crisis. Constant change will only accelerate going forward, and no area will be left untouched. People's lives and the wellbeing of our ecosystem are directly affected by these complex challenges, making the change itself also complex. Are you ready for what it takes?
Language is important, especially when talking about change. People don't "resist" change, they respond to it, for example. In addition to self (interior), one has to think of both others (exterior) and the context. Change is both individual and social.
This is why Esther's book is so important, widely applicable, and a timely read. Highly recommended! I'd love to hear your thoughts, and, as an avid reader, I'm keen on getting more book tips in this area.
I'll leave you with a quote from the book:
People change to save something they value.


Encouraging ongoing feedback from stakeholders.
Now offering pre-Alpha access to the Markeplace Shell™:
ncat megainstant.com 9999
Encouraging ongoing feedback from stakeholders.
Now offering pre-Alpha access to the Markeplace Shell™:
ncat megainstant.com 9999


{% extends "layout_bsa.html" %} {% block page_title %} Help paying for NHS Costs prototype {% endblock %} {% block content %} Back This is a free service Charging to complete this form is a horrible thing to do Warning You can be fined up to £5,000 if you ask for money to complete this on someone elses behalf. {% endblock %}


lab02 : Using g++, make and gdb
| num | ready? | description | assigned | due |
|---|---|---|---|---|
| lab02 | true | Using g++, make and gdb | Tue 04/10 11:00AM | Mon 04/16 11:59PM |
Goals for this lab
By the time you have completed this lab, you should be able to
- Effectively use g++ from the command line
- Create and use a simple Makefile
- Use basic gdb commands to debug a program
Please note that this lab was updated on Jan 29 at 12:14 am. If you completed the lab before, note that the gdb exercise has changed. You must redo it.
Lab partners and mentor groups
You have been assigned a partner who has reported the same level of confidence and experience in programming as yourself. Find your pair partner and mentor at this link:
Pair partners and mentor groups for CS24
Step by Step Instructions
Step 1: Choose initial roles, create a directory and get the starter code for this lab
Partner up (and remember to switch roles after awhile). If your regular partner is more than 5 minutes late, ask the TA to pair you with someone else for this week.
This lab’s pilot should log in. You will (both) work in this account for the rest of the lab.
Create a ~/cs24/lab02 directory and make it your current directory:
mkdir ~/cs24/lab02
cd ~/cs24/lab02
Now navigate to your starter-code directory and do a git pull to get the latest version of the code
cd ~/cs24/cs24-s18-starter-code/
git pull
cd ~/cs24/lab02/
Now copy all of the files for this lab from the starter-code directory to your cs24/lab02 directory:
cp ~/cs24/cs24-s18-starter-code/lab02/* ~/cs24/lab02/
Step 2: Review compiling and linking with g++
With a simple program like hello.cpp, we normally compile and link in one step, and then it is ready to run like so:
g++ hello.cpp -o hello
./hello
But we can also compile the program without linking it. Type the following, and then use ls to find out what happened:
-bash-4.3$ g++ -c hello.cpp
-bash-4.3$ ls hello.*
hello.cpp hello.o
Notice the new object file hello.o, which contains the machine language instructions in binary form. In a second step we would link this object file (just to standard libraries in this case) as follows:
g++ hello.o -o hello
That step will finally produce the executable file “hello” - but only because we specified by the g++ option -o that the output file should be named hello. The program is run exactly like before by typing ./hello at the prompt.
Step 3: Understanding separate compilation
When it comes to large projects in C++, it’s always useful to organize your project into separate parts. When some parts of your program change, then only these parts need to be recompiled.
See the three files main.cpp, functions.cpp and functions.h in your starter code. Notice that both of the .cpp files include the .h file - this is a typical case. It won’t be necessary to compile functions.h by itself, as it will become part of both object files produced when the .cpp files are compiled.
Your job for Step 3:
Compile both of main.cpp and functions.cpp separately. Then link the object files (will be main.o and functions.o) together to produce an executable file named “hello2” - this executable’s name is important, and part of the lab requirement.
Run ./hello2 to verify success.
Thought question: Why is it unnecessary to separately compile functions.h?
Other useful g++ options
When first compiling your programs it’s always good to use the “-Wall” and the “-g” options in order to force g++ to give you warnings about possible errors in the source code, and include extra debugging information in its output, respectively.
The -g option is also necessary in order to use the gdb debugger later in the lab.
If your program uses any of the extended C++ features of the C++ 2011 standard, then you must give the -std=c++11 option to g++ too.
Step 4: Using a Makefile
Now imagine that you have a project with 20 different files, or even hundreds of files …
Wouldn’t it be better if we could compile all our files just by typing one command? Wouldn’t it be better and save us time if we have to compile only the files we have changed, and not all of them? This is why we use the Makefile and the make command.
Now let’s write a simple makefile to easily compile the files main.cpp, functions.cpp, and functions.h that we used on the previous section. Open a text editor and name the file “Makefile” (or “makefile”). You should always name your make files in this way.
Don’t just copy & paste this text! Be sure there is a tab character at the beginning of every command line (in this case, the three g++ commands and the rm command) - spaces will not work.
hello: main.o functions.o
g++ main.o functions.o -o hello
main.o: main.cpp functions.h
g++ main.cpp -c
functions.o: functions.cpp functions.h
g++ functions.cpp -c
clean:
rm hello main.o functions.o
Save the Makefile. Then make a minor change to one of the source code files (main.cpp, functions.cpp or functions.h).  Fix Makefile if it doesn’t compile the changed parts and reproduce the executable file. If it does, then find out what happens if you type “make” again. ;-)
By default, make will execute whatever is necessary to produce the first target which is hello (the executable) in this case. Alternatively, you can specify the target you want to make by typing it as a command line argument, as in “make hello” to execute the default another way.
Suppose that now you want to remove the objects and executable file. What should you type in your console? Be prepared to answer that question if the your mentor asks you.
Step 5: Using gdb (Gnu debugger)
Maybe time to switch partner roles?
Inevitably sometime you will need to debug your code. gdb is a very powerful tool. Here we learn just the basics.
GDB Commands Summary
The following is a list of the most useful commands inside the gdb - also available at this link. gdb provides online documentation. Just typing help, you will obtain a list of topics.
file “file executable” specifies which program you want to debug.
run “run” starts the program running under gdb. The program is the one that you have previously selected with the file command, or on the unix command line when you started gdb. You can give command line arguments to your program on the gdb command line. You can do this the same way you would on the unix command line, except that you are saying run instead of the program name. For example,
run 5 20 40 60
You can even do input/output redirection: run > outfile.txt.
list “list linenumber” prints out some lines from the source code around linenumber. If you give it the argument function it will print out lines from the beginning of that function.
Just list without any arguments will print out the lines just after the lines that you printed out with the previous list command.
break “break” sets a breakpoint in your program.
A breakpoint
is a spot in your program where you would like to temporarily stop execution in order to check the values of variables, or to try to find out where the program is crashing, etc.
“break function” sets the breakpoint at the beginning of function. If your code is in multiple files, you might need to specify filename:function.
“break linenumber” or “break filename:linenumber” sets the breakpoint to the given line number in the source file. Execution will stop before that line has been executed.
delete “delete” deletes all breakpoints that you have set. “delete number” deletes breakpoint numbered number. You can find out what number each breakpoint is by doing info breakpoints. (The command info can also be used to find out a lot of other stuff. Do help info for more information.)
clear “clear function” deletes the breakpoint set at that function. Similarly for linenumber, filename:function, and filename:linenumber.
step “step” goes ahead and execute the current source line, and then stop execution again before the next source line.
next “next” continues until the next source line in the current function (actually, the current innermost stack frame, to be precise). This is similar to step, except that if the line about to be executed is a function call, then that function call will be completely executed before execution stops again, whereas with step execution will stop at the first line of the function that is called.
until “until” is like next, except that if you are at the end of a loop, “until” will continue execution until the loop is exited, whereas “next” will just take you back up to the beginning of the loop. This is convenient if you want to see what happens after the loop, but don’t want to step through every iteration.
print “print expression” prints out the value of the expression, which could be just a variable name. To print out the first 25 (for example) values in an array called list, you would do print list[0]@25
quit “quit” is used to exit the gdb debugger.
Look at buggyGPA.cpp to know its major parts.
(Emacs Users Hint: If you are using emacs you can see line numbers on the editor by typing M-x linum-mode. This will make your life easier. If you prefer running gdb on e-macs maybe you should try M-x gdb-many-windows in order to split your screen and be able to see variable values, gdb and e-macs all together. You gain control back to emacs by typing: C-x 0)
This program is supposed to a list of course names and letter grades in order and compute a grade point average out of 4.0 based on the following standard mapping:
| Letter | Point value |
|---|---|
| A+ | 4.0 |
| A | 4.0 |
| A- | 3.7 |
| B+ | 3.3 |
| B | 3.0 |
| B- | 2.7 |
| C+ | 2.3 |
| C | 2.0 |
| C- | 1.7 |
| D+ | 1.3 |
| D | 1.0 |
| <D | 0 |
So a non-buggy version of the program with executable name “gpa” would execute like this, where 16, :
$ ./gpa CS16 A CS24 A+ CS32 A
CS16 A
CS24 A+
CS32 A
GPA: 4.000
If an odd number of arguments are passed to the program it should appropriately print a usage message to standard error, as follows:
$ ./gpa 16
Usage: ./gpa course letterGrade
But this code has errors. Your job will be to find all the errors using gdb. No need to fix it now, just find it. That’s the purpose of gdb - it helps you find errors in your code.
Compile the code, and remember to compile with the -g option. Use this command:
g++ -g -o buggy buggyGPA.cpp
Then run it. Here is an example run:
$ ./buggy CS16 A CS24 A+ CS32 A
CS16 A
CS24 A+
CS32 A
GPA: 2.667
Hmmm… Well it seems that our program doesn’t calculate the correct GPA. Let’s try to debug it with gdb to see how the basic gdb commands work. Begin by starting gdb with buggy as its command line argument:
$ gdb ./buggy
GNU gdb (GDB) Fedora 7.12.1-48.fc25
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
 Normally, you might have put
a cout statement right before this line to examine the values of the arrays
and any other local variables. With gdb we can do this at the gdb command
line without having to edit and recompile our program
Let's print the element 0 of courseNames using the "p" (print) statement
(gdb) p courseNames[0]
$4 = "CS16"
That seems right. Now let's try to print the first five elements of courseNames
(gdb) p courseNames[0]@5
$1 = {"CS16", "", "CS24", "", "CS32"}
This is definitely weird, "CS24" is at index 2, while it should have been
at index 1, CS32 is at the wrong spot as well.
Go ahead and print the values of all the local variables in your code using
info locals
(gdb) info locals
courseNames = {"CS16", "", "CS24", "", "CS32"}
courseGrades = {0, 0, 1.3852388523421298e-309, 5.4322263344105125e-312, 0}
courseLetterGrades = {"A", "", "A+", "", "A"}
numCourses = 3
result = 2.0750045670802343e-317
You will probably see a different set of values for courseGrades and result because these are uninitialzied. But the other variables should have the same values as shown above. We can immediately spot that something went wrong prior to line 23 by looking at the content of courseNames and courseLetterGrades. The program should have resulted in courseNames being {“CS16”, “CS24”, “CS32”, “”, “”} and courseLetterGrades being {“A”, “A+”, “A”, “”, “”}. Notice how much easier it is to examine the values of your variables at run time with gdb, without having to put additional print statements.
Let’s continue for now. Type “l” for list to see the code you are about to execute.
(gdb) l
18 courseNames[i-1] = string(argv[i]);
19 courseLetterGrades[i-1] = string(argv[i+1]);
20 cout<< courseNames[i-1] << " "<< courseLetterGrades[i-1]<< endl;
21 }
22
23 assignCourseGrade(numCourses, courseLetterGrades, courseGrades );
24
25 cout.setf(ios::fixed);
26 cout.setf(ios::showpoint);
27 cout.precision(3);
We had set the breakpoint at line 23 which is a function call.
You can step into the function assignCourseGrade using the "s" (step) command
(gdb) s
assignCourseGrade (numCourses=2, courseLetterGrades=0x7fffffffde60,
courseGrades=0x7fffffffdf00) at buggyGPA.cpp:37
37 for(int i =0 ; i < numCourses; i++){
gdb is showing you the values of all the parameters passed to the assignCourseGrade function! Print the first 5 elements of courseGrades
(gdb) p courseGrades[0]@5
$2 = {0, 0, 1.3852388523421298e-309, 5.4322263344105125e-312, 0}
This is the array the function will be modifying.
Use "n" for next to just execute the next line
(gdb) n
38 if(courseLetterGrades[i]=="A" || courseLetterGrades[i]=="A+"){
You can run the same gdb command as before by pressing enter. In this case if you press enter you gdb will execute the next command.
(gdb)
39 courseGrades[i] = 4.0;
So, the next line gdb is going to execute is line 40. Enter once more to execute this line and you should be back to the beginning of the for loop on line 38
(gdb)
37 for(int i =0 ; i < numCourses; i++){
Now print the 5 elements of courseGrades using the commands we learned before. Is it what you expected?
(gdb) p courseGrades[0]@5
$3 = {4, 0, 1.3852388523421298e-309, 5.4322263344105125e-312, 0}
Element at index 0 has been set to 4 which is what we expected. Now let’s run the code until we finish executing the for loop. You can do this with until
gdb) until
62 }
gdb always shows you the next line that will be executed. In this case it is the brace that is at the end of the function. We are still in the function, so you can examine the value of courseGrades again
(gdb)p courseGrades[0]@5
$4 = {4, 0, 4, 5.4322263344105125e-312, 0}
Notice element at index 1 has been set to 0. If courseLetterGrades was properly populated, courseGrades would have had 4.0 at index 1.
You can now clearly see the consequence of not having courseGrades properly populated.
More about breakpoints: Put a breakpoint on line 28. Now you have two breakpoints set - this new one is number 2. You can disable it by entering “disable 2” (you could also use dis 2).
And you can enter “enable 2” (or “ena 2”) to enable the breakpoint again, and “delete 2” (or “d 2”) to delete the breakpoint.
To run your code until the next breakpoint is reached type (c) for continue.
Other stuff: Enter “help” at the gdb prompt to find out about more commands. One useful one, for example, is “list” - try it.
Type q (for quit) and then ‘y’ to quit gdb
Now run the program with just one argument as follows:
$ ./buggy CS16
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Aborted (core dumped)
Your program may or may not crash but if you see the same error message as I have then it has clearly crashed! If you are not able to reproduce the crash don’t worry, just read on.
Notice that when your program crashes, the error message C++ throws at you doesn’t give any clues about which line of code caused it.
Now let’s try running the program in gdb
gdb buggy
GNU gdb (GDB) Fedora 7.12.1-48.fc25
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from buggy...done.
(gdb) r CS16
Starting program: /cs/faculty/dimirza/git/cs24-w18-lab-starter-code/lab02/buggy CS16
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.24-10.fc25.x86_64
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Program received signal SIGABRT, Aborted.
0x00007ffff719e8df in raise () from /lib64/libc.so.6
Looks like an exception was raised somewhere in the C++ library. The std library is always correct. We need to find which line of our code caused this behavior.
Use the bt (backtrace) command to trace the sequence of function calls that resulted in this state
(gdb) bt
#0 0x00007ffff719e8df in raise () from /lib64/libc.so.6
#1 0x00007ffff71a04da in abort () from /lib64/libc.so.6
#2 0x00007ffff7ae04fd in __gnu_cxx::__verbose_terminate_handler() ()
from /lib64/libstdc++.so.6
#3 0x00007ffff7ade2b6 in ?? () from /lib64/libstdc++.so.6
#4 0x00007ffff7ade301 in std::terminate() () from /lib64/libstdc++.so.6
#5 0x00007ffff7ade519 in __cxa_throw () from /lib64/libstdc++.so.6
#6 0x00007ffff7b080af in std::__throw_logic_error(char const*) ()
from /lib64/libstdc++.so.6
#7 0x00007ffff7b74f84 in void std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_M_construct<char const*>(char const*, char const*,
std::forward_iterator_tag) () from /lib64/libstdc++.so.6
#8 0x00007ffff7b7513c in std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) ()
from /lib64/libstdc++.so.6
#9 0x0000000000400e99 in main (argc=2, argv=0x7fffffffe148) at buggyGPA.cpp:19
(gdb)
Looks like the culprit is line 19 of buggyGPA.cpp. That’s the line of code that resulted in the chain of events leading up to the crash. Use the list command to examine the code around line 19 of buggyGPA.cpp
(gdb) l buggyGPA.cpp:19
15 int numCourses = int(argc/2);
16
17 for (int i = 1; i< argc; i=i+2 ){
18 courseNames[i-1] = string(argv[i]);
19 courseLetterGrades[i-1] = string(argv[i+1]); // here is the line that caused the crash
20 cout<<courseNames[i-1] << " "<<courseLetterGrades[i-1]<<endl;
21 }
Line 19 is: courseLetterGrades[i-1] = string(argv[i+1]); Without gdb identifying that this exact line of code caused the program to crash would have been reealllly hard!
What’s more, with gdb you can go back in time (yes its also a time machine!) 9 function calls ago and retrieve the values of your local variables right before line 19 was executed.
Use the up command to go back 9 calls to the moment when line 19 was about to be executed.
(gdb) up 9
#9 0x0000000000400e99 in main (argc=2, argv=0x7fffffffe148) at buggyGPA.cpp:19
19 courseLetterGrades[i-1] = string(argv[i+1]);
You can now examine the value of the local variable i
(gdb) p i
$1 = 1
Look at line 19 again. If i is 1 then i+1 is 2. This means argv[i+1] is an out of bound access (argv only has two elements). You can actually print the value of argv[i+1]
(gdb) p argv[i+1]
$2 = 0x0
In my case it was null - an invalid parameter to the constructor of string class. This caused my program to crash!
Ok… Now you have a new tool to find bugs in your programs. Debug buggyGPA.cpp so that it can handle upto 5 (or more) input courses. Everytime you change the file, you should recompile it and then run.
Step 6: Show off your work and get credit for this lab
Get your mentor’s attention to inspect your work. Before you submit, rename buggyGPA.cpp to gpa.cpp as it is now bug free!
Step 7: Submit your code on gradescope
Log into your account on https://www.gradescope.com/ and navigate to our course site: CS24 Spring 2018. Select this assignment. Then click on the “Submit” button on the bottom right corner to make a submission. You will be given the option of uploading files from your local machine or submitting the code that is in a github repo. Select the second option and select your github repo for this assignment. You should receive 50/50 for a completely correct program.


An error has occured! Perhaps you should go to the
main page
and try again.
Technical Details:
Code: {code}
Status: {status_message}
Message: {message}


Jeremy Corbyn branded 'terrorist sympathiser' during Glasgow election visit
Church minister Richard Cameron shouted: "I thought you'd be wearing your Islamic jihad scarf," as Labour leader was talking to broadcasters
by Brett Gibbons, https://www.birminghammail.co.uk/authors/brett-gibbons/Labour leader Jeremy Corbyn has been branded a "terrorist sympathiser" by a Church of Scotland minister during an election campaign visit.
The jibe came as he was entering the Heart of Scotstoun community centre in Glasgow on Wednesday, when he stopped to tell broadcasters about a scarf he was wearing, which had been given to him by representatives of the Who Cares Scotland charity.
But he was interrupted by Richard Cameron, the minister at Scotstoun Parish Church, who shouted: "I thought you'd be wearing your Islamic jihad scarf.
"Do you think that the man who is going to be prime minister of this country should be a terrorist sympathiser, Mr Corbyn?
"Who's going to be the first terrorist invited to the House of Commons when you're prime minister?
Mr Cameron then accused Mr Corbyn of "running away".
A spokeswoman for the Church of Scotland later rebuked Mr Cameron.
She said: "The Church of Scotland as an organisation has a long history of engaging with politicians through a number of different channels.
"Whilst we may occasionally robustly challenge policy issues with which we disagree, we always intend to do that in a way that is polite and measured and allows for reasoned debate."
Mr Corbyn did not react to Mr Cameron, and was then ushered into the community centre by Scottish Labour leader Richard Leonard.


| LODGING | ||
|---|---|---|
| 1 | Hotel/Motel/B&B |
Emergency Support Services is eligible for approved Provincial Government Rates from commercial lodgings supplier listed in the Ministry of Labour and Citizens' Services Business Travel Lodging Listings for government travel. Only the cost of the room is covered. |
| 2 | Billeting in Private Homes |
The Referral Form for billeting is issued to the billeting host (supplier). Billeting rate does not include meals. ${{nightly|number:'1.2-2'}} per night based on single occupancy (add ${{adult|number:'1.2-2'}} for each additional adult or youth, and ${{child|number:'1.2-2'}} for each additional child). |


{{ secret_bonus_fact }}
{{ fact }}
{{ exclamation }} {% endif -%}
Cover template for Bootstrap, by @mdo.


Hoppuccino Rabbit Cafe
At Indiana's first rabbit cafe, you can help local rescue animals. A portion of all proceeds goes to local shelters, and at the cafe you can enjoy our food and drinks while spending time with the rabbits even if you don't have time for one at home. All rabbits are also available for adoption, should you find yourself getting attached.


Web dude
If you have some cool ideas you'd like to work on, give me a shout.
Drop me an email on sup@d0m.io


How to use the Blur effects without using a view object.
If you need a greater level of control you can use the applyBlurTo method to perform the image operations yourself.
The applyBlurTo method takes a dictionary with the following fields.
Fields
blurRadius (optional): float
The blurRadius property sets how blurry the image is. By default this value is 8.
image : Url to image
The image parameter is the url to an image that will be used in the blur process. This URL must be local to your app, remote images are not supported
Example - Blurred Background
var mod = require('bencoding.blur');
var win = Ti.UI.createWindow({
backgroundColor:'white', title:"Image Blur Demo"
});
var imgblurredImage = mod.applyBlurTo({
image:'42553_m.jpg',
blurRadius:10
});
var vwTest = Ti.UI.createImageView({
width:Ti.UI.FILL, height:Ti.UI.FILL,
image:imgblurredImage
});
win.add(vwTest);
win.open();


theme users
Some people who use one of my jekyll themes (himsel.me/material-theme):
varundey.me Thanks for his support!
find more like these examples:
https://www.google.de/search?q=jekyll+theme+by+lukas+himsel
Github Project: lukas-h/material-theme


Paneer Tikka Masala
Ingredients
- 250g cubes paneer
- 1 onion
- 1 capsicum
- 200ml tomato puree
- 1 tsp red chilli powder
- 1 tsp turmeric powder
- 1 tsp coriander powder
- ½ tsp garam masala powder
- 100ml thick yogurt
- 1 tsp fenugreek powder
- dry fenugreek leaves
- cardamom
- cumin seeds
- shaved ginger
- 20ml garlic paste
- 1 bowl corn
Directions
- Take a glass container, and mix the cubed paneers with half a tea spoon of red chilli powder, turmeric powder, coriander powder, garam masala powder, fenugreek powder, and 50g yogurt.
- Let the mix marinade for at least an hour.
- Preheat the oven to 200°C (392°F), and place the marinated paneer cubes, with onion, capsicum, and tomato on the skewers. Let them grill in the oven using skewer support, by continuously flipping them every 5 minutes until the outer crust looks crispy enough.
- Start heating some oil in a pan to add some cardamom and cumin seeds. Let it heat until the flavour is transfused for about a minute or two.
- Now add chopped onions and tomatoes to the sautee. Add some shaved ginger and garlic paste and let it sauté until some raw flavour disappears.
- Add the tomato purée, dry fenugreek leaves, and let it cook for about 15 minutes.
- As the spice and tomato purée looks cooked, add some water to the mixture and let it cook more.
- Now add the grilled paneer, some chopped vegetables of choice, corn and stir the mixture well.
- One the added water seems to be evaporated, and the mixture looks a little thicker, turn off the heat and garnish with lemon juice, fresh coriander. (It can be served with bread of any preference.)
Contribution
Arth Patel - Website
Recipe tags:
indian
lunch
spicy


| 4 Apr 1965 |
Robert Downey Jr. born in Greenwich Village, Manhattan, NY. |
| 29 Mar 1993 |
Downey wins an Oscar for Best Actor in a Leading Role in the 1992 film Chaplin. |
| 23 Jun 1996 |
Arrested for driving drunk and being in possession of Mexican Black Tar heroin, crack, cocaine and a .357 Magnum revolver. |
| 16 Jul 1996 |
Downey enters a Malibu, California home at random and crashes in a child's bed. The police arrest him for trespassing. Downey maintains his limo driver dropped him off at the wrong address. |
| 20 Jul 1996 |
Downey is arrested, for the third time in a month, after walking away from his court-ordered drug treatment program. |
| 6 Nov 1996 |
Malibu Municipal Judge Lawrence Mira sentences Downey to three years probation for weapons and drugs charges: "If you've ever had a chance here to deal with this problem and maintain your sobriety, this is the chance to do it. I wish you good luck. You've made a good start." |
| 16 Nov 1996 |
Downey hosts Saturday Night Live. |
| 8 Dec 1997 |
Malibu Municipal Judge Lawrence Mira sentences Downey to six months in jail for violating parole. |
| 14 Feb 1998 |
While serving a six-month sentence in jail, Downey gets into a fight and ends up with a scratched nose. |
| 16 Jul 1999 |
Downey returns to Corcoran State Prison to serve a three-year sentence for a parole violation. |
| 3 Apr 2000 |
The New York Daily News reports that Downey is a target for abuse by other inmates at Corcoran State Prison in California. |
| 25 Nov 2000 |
Downey arrested in a Palm Springs, California hotel for cocaine and Valium possession and being under the influence of a controlled substance. |
| 21 Jan 2001 |
Wins a Golden Globe, and a standing ovation, for work on Ally McBeal. |
| 24 Jan 2001 |
Downey's wife, Deborah Falconer, files for divorce. |
| 22 Apr 2001 |
Nominated for an American Comedy Award, Funniest Supporting Male Performer in a TV Series, for his brief stint on Ally McBeal. |
| 8 Sep 2001 |
Wins an Emmy for work on Ally McBeal. |


Description: The following code is an implementation of the gist tiles for infobutton, detailed view button and quicklook button. When the pill button is clicked, the quicklook button must be active and the data graph has to be shown by default. (javaScript functionality required)
Pill View
This table represents the patient's immunization records categorized by date, series, reaction, and date
Date
Series
Reaction
Since
01/09/2014
2
No
16m
11/15/2013
1
No
17m
Tile View
Name:
Sig:
Last
Fillable:
Medication Name: Metoptrolol
Medication Dosage: 50 mg PO BID
Dosage period and trend:3y3 yearsDecrease
Refill:-4m ExpExpired 4 months ago
This table represents the history of the patient's prescription and intake behavior categories by date range and behavior
Date Range
Behavior
2013/05 - 2015/03
Prescribed and taken
2011/05 - 2013/03
Not used
Interaction Options
This is the patient's immunization records data. To view more information press enter to open a data table below
This table represents the patient's immunization records categorized by date, series, reaction, and date


| Tickets |
Price |
{% for ticket in tickets %}
{{ticket.get_name}}
| ${{ticket.get_price}} |
{% endfor %}
Service Fee
| ${{fee}} |
Total
| ${{total}} |
Tickets can be picked up at the venue.
Terms and Conditions: All sales are final, no exchanges or refunds unless the show is cancelled. If a show is cancelled you will be refunded the price of your purchase. You will recieve the refund by email through our payment provider (Stripe). Please check your email for a receipt after checking out and bring a piece of photo identifcation to the venue to pickup your tickets.
Please also read our Privacy Policy.


My Links I Am Reading
Thu, Jul 23, 2020
1-minute read
This is just a simple list of links by day I want to get back to or find again or I found interesting, nothing really to see here :)
Work
Interesting Tech
- React Spectrum
- dvc.org - Open-source Version Control System for Machine Learning Projects
Fun
- How to broadcast to Twitch and Zoom with OBS
- Streamyard
- GitHub profile readme generator
- Designing scalable API on AWS spot instances
- https://medium.com/@capuccino/revive-your-cr-48-install-any-os-on-the-fabled-chromebook-b17a763654d9 Interesting
- How Costco Convinces Brands to Cannibalize Themselves
- Mac is moving to Apple Silicon - not ARM


I'm Emily and I'm a Responsive Designer & Developer with a background in Project Management and Information Architecture. My design company is called Space Order Light.
In the last year, I moved across the country with my family (wife, 2 rescue shepherds and a 21-year-old alley cat)
from Atlanta, GA to Santa Fe, NM. We are exploring the wild west, pandemic notwithstanding, and having a grand adventure.
I am embarking on a new career as a front-end developer, as it has many of the elements I found so rewarding thus far: creative
problem-solving, constant evolution, and improving the end-user experience.
I am an avid reader, a lifelong comics fan, a gamer (both tabletop and video), a LEGO master builder, an amateur astronomer,
and careful connoisseur of sci-fi movies and television. I also hold a deep respect and reverence for all things Disney Parks Imagineering.


|
Sound Pirates
Game to train note matching by ear.
|
#include <string>
#include <vector>
#include <stdexcept>
#include <iostream>
#include <sstream>
Go to the source code of this file.
Classes | |
| class | RtAudioError |
| Exception handling class for RtAudio. More... | |
| class | RtAudio |
| Realtime audio i/o C++ classes. More... | |
| struct | RtAudio::DeviceInfo |
| The public device information structure for returning queried values. More... | |
| struct | RtAudio::StreamParameters |
| The structure for specifying input or ouput stream parameters. More... | |
| struct | RtAudio::StreamOptions |
| The structure for specifying stream options. More... | |
| struct | CallbackInfo |
| class | S24 |
| class | RtApi |
| struct | RtApi::ConvertInfo |
| struct | RtApi::RtApiStream |
| class | RtApiDummy |
Macros | |
| #define | RTAUDIO_VERSION "5.1.0" |
| #define | RTAUDIO_DLL_PUBLIC |
| #define | __RTAUDIO_DUMMY__ |
Typedefs | |
| typedef unsigned long | RtAudioFormat |
| RtAudio data format type. More... | |
| typedef unsigned int | RtAudioStreamFlags |
| RtAudio stream option flags. More... | |
| typedef unsigned int | RtAudioStreamStatus |
| RtAudio stream status (over- or underflow) flags. More... | |
| typedef int(* | RtAudioCallback) (void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, RtAudioStreamStatus status, void *userData) |
| RtAudio callback function prototype. More... | |
| typedef void(* | RtAudioErrorCallback) (RtAudioError::Type type, const std::string &errorText) |
| RtAudio error callback function prototype. More... | |
| typedef int | ThreadHandle |
| typedef int | StreamMutex |
| typedef int(* RtAudioCallback) (void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, RtAudioStreamStatus status, void *userData) |
RtAudio callback function prototype.
All RtAudio clients must create a function of type RtAudioCallback to read and/or write data from/to the audio stream. When the underlying audio system is ready for new input or output data, this function will be invoked.
| outputBuffer | For output (or duplex) streams, the client should write nFrames of audio sample frames into this buffer. This argument should be recast to the datatype specified when the stream was opened. For input-only streams, this argument will be NULL. |
| inputBuffer | For input (or duplex) streams, this buffer will hold nFrames of input audio sample frames. This argument should be recast to the datatype specified when the stream was opened. For output-only streams, this argument will be NULL. |
| nFrames | The number of sample frames of input or output data in the buffers. The actual buffer size in bytes is dependent on the data type and number of channels in use. |
| streamTime | The number of seconds that have elapsed since the stream was started. |
| status | If non-zero, this argument indicates a data overflow or underflow condition for the stream. The particular condition can be determined by comparison with the RtAudioStreamStatus flags. |
| userData | A pointer to optional data provided by the client when opening the stream (default = NULL). |
| typedef void(* RtAudioErrorCallback) (RtAudioError::Type type, const std::string &errorText) |
| typedef unsigned long RtAudioFormat |
RtAudio data format type.
Support for signed integers and floats. Audio data fed to/from an RtAudio stream is assumed to ALWAYS be in host byte order. The internal routines will automatically take care of any necessary byte-swapping between the host format and the soundcard. Thus, endian-ness is not a concern in the following format definitions.
| typedef unsigned long RtAudioStreamFlags |
RtAudio stream option flags.
The following flags can be OR'ed together to allow a client to make changes to the default stream behavior:
By default, RtAudio streams pass and receive audio data from the client in an interleaved format. By passing the RTAUDIO_NONINTERLEAVED flag to the openStream() function, audio data will instead be presented in non-interleaved buffers. In this case, each buffer argument in the RtAudioCallback function will point to a single array of data, with nFrames
samples for each channel concatenated back-to-back. For example, the first sample of data for the second channel would be located at index nFrames
(assuming the buffer
pointer was recast to the correct data type for the stream).
Certain audio APIs offer a number of parameters that influence the I/O latency of a stream. By default, RtAudio will attempt to set these parameters internally for robust (glitch-free) performance (though some APIs, like Windows DirectSound, make this difficult). By passing the RTAUDIO_MINIMIZE_LATENCY flag to the openStream() function, internal stream settings will be influenced in an attempt to minimize stream latency, though possibly at the expense of stream performance.
If the RTAUDIO_HOG_DEVICE flag is set, RtAudio will attempt to open the input and/or output stream device(s) for exclusive use. Note that this is not possible with all supported audio APIs.
If the RTAUDIO_SCHEDULE_REALTIME flag is set, RtAudio will attempt to select realtime scheduling (round-robin) for the callback thread.
If the RTAUDIO_ALSA_USE_DEFAULT flag is set, RtAudio will attempt to open the "default" PCM device when using the ALSA API. Note that this will override any specified input or output device id.
If the RTAUDIO_JACK_DONT_CONNECT flag is set, RtAudio will not attempt to automatically connect the ports of the client to the audio device.
| typedef unsigned long RtAudioStreamStatus |
RtAudio stream status (over- or underflow) flags.
Notification of a stream over- or underflow is indicated by a non-zero stream status
argument in the RtAudioCallback function. The stream status can be one of the following two options, depending on whether the stream is open for output and/or input:


This page describes an algorithm for solving Sudoku puzzles, which have suddenly become popular in the UK, and provides a Python script to automate the process.
Updates:Oct 9 2005 - Replaced the Python script with an easier to understand version that doesn't use recursion. Altered this page to reflect the new algorithm.. |
|
We will start off with an easy example. This one appeared in the Evening Standard on 31st May 2005, where it was described as "Hard". It has 27 squares filled in, the examples they describe as "Easy" have 32. This doesn't make much difference to a computer algorithm, though if you were working through this by hand the more initial numbers you are given the quicker you should be able to solve it. I call it "easy" as it can be solved after applying only the simpler parts of the algorithm. |
The algorithm works by writing out all the possible answers and then eliminating those that are incompatible with the numbers published in the puzzle. The starting position is that every cell can contain any of the numbers 1-9. We represent this by writing all the possible values into each cell, which gives us a grid that looks like this.
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 | 123456789 |
The overall approach is to eliminate the impossible so that what remains must be the answer.
In the example above we have been given the values for 27 of the cells. The first thing to do is to apply these to our grid and eliminate all the values that are inconsistent with these. Working across the top row the first value we have is in the 5th cell. This is a 1. This means that there can be no other '1's on the top row or in the 5th column, or in the top-middle block of 9. Crossing out all these '1's leaves
| 23456789 | 23456789 | 23456789 | 23456789 | 1 | 23456789 | 23456789 | 23456789 | 23456789 |
| 123456789 | 123456789 | 123456789 | 23456789 | 23456789 | 23456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 23456789 | 23456789 | 23456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 23456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 23456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 23456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 23456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 23456789 | 123456789 | 123456789 | 123456789 | 123456789 |
| 123456789 | 123456789 | 123456789 | 123456789 | 23456789 | 123456789 | 123456789 | 123456789 | 123456789 |
Continuing this process; after entering the 9 given values on the top three rows we have
| 2368 | 2368 | 2368 | 23567 | 1 | 9 | 3578 | 4 | 3578 |
| 1239 | 1239 | 4 | 8 | 2357 | 2357 | 6 | 13579 | 13579 |
| 7 | 5 | 13689 | 346 | 346 | 346 | 1389 | 1389 | 2 |
| 12345689 | 12346789 | 12356789 | 12345679 | 23456789 | 12345678 | 12345789 | 12356789 | 13456789 |
| 12345689 | 12346789 | 12356789 | 12345679 | 23456789 | 12345678 | 12345789 | 12356789 | 13456789 |
| 12345689 | 12346789 | 12356789 | 12345679 | 23456789 | 12345678 | 12345789 | 12356789 | 13456789 |
| 12345689 | 12346789 | 12356789 | 12345679 | 23456789 | 12345678 | 12345789 | 12356789 | 13456789 |
| 12345689 | 12346789 | 12356789 | 12345679 | 23456789 | 12345678 | 12345789 | 12356789 | 13456789 |
| 12345689 | 12346789 | 12356789 | 12345679 | 23456789 | 12345678 | 12345789 | 12356789 | 13456789 |
This hasn't made much impact on the bottom two thirds of the grid because so far we've only had one value in each column. But we've got 18 more values to place. When we get to '6' in the 6th column of the 6th row the grid is becoming a lot sparser and we notice that the only possible value left for the sixth cell on the third row is '4'. So we have found our first missing number (shown in green).
| 2368 | 2368 | 2368 | 23567 | 1 | 9 | 3578 | 4 | 3578 |
| 1239 | 123 | 4 | 8 | 2357 | 57 | 6 | 13579 | 13579 |
| 7 | 5 | 13689 | 36 | 346 | 4 | 1389 | 1389 | 2 |
| 368 | 9 | 3678 | 1 | 578 | 2 | 3578 | 35678 | 4 |
| 12468 | 124678 | 12678 | 579 | 5789 | 3 | 125789 | 1256789 | 156789 |
| 5 | 12378 | 12378 | 4 | 789 | 6 | 123789 | 123789 | 13789 |
| 1234689 | 1234678 | 12356789 | 235679 | 23456789 | 14578 | 12345789 | 12356789 | 1356789 |
| 1234689 | 1234678 | 12356789 | 235679 | 23456789 | 14578 | 12345789 | 12356789 | 1356789 |
| 1234689 | 1234678 | 12356789 | 235679 | 23456789 | 14578 | 12345789 | 12356789 | 1356789 |
After we've used up all the given numbers (and the one we found) we we are left with the grid.
| 236 | 2368 | 238 | 3567 | 1 | 9 | 3578 | 4 | 578 |
| 1239 | 23 | 4 | 8 | 2357 | 57 | 6 | 159 | 1579 |
| 7 | 5 | 1389 | 36 | 36 | 4 | 1389 | 189 | 2 |
| 36 | 9 | 378 | 1 | 578 | 2 | 578 | 568 | 4 |
| 1246 | 24678 | 1278 | 579 | 578 | 3 | 125789 | 125689 | 156789 |
| 5 | 278 | 1278 | 4 | 78 | 6 | 12789 | 3 | 1789 |
| 8 | 24 | 259 | 56 | 456 | 15 | 1259 | 7 | 3 |
| 239 | 237 | 6 | 357 | 357 | 8 | 4 | 1259 | 159 |
| 34 | 1 | 357 | 2 | 9 | 57 | 58 | 568 | 568 |
So we move onto phase 2, "Looking for Singletons".
Phase two involves counting how often the undecided numbers appear in a set of cells (row, column or 3x3 super-cell). If we start with the first column, the undecided cells are the 1st, 2nd, 4th, 5th, 8th and 9th. The possibilities are '236', '1239', '36', '1246', '239' and '34'. If we count how often each undecided number appears (the known ones are excluded from this process) we get
| Number | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Frequency | 2 | 4 | 5 | 2 | - | 3 | - | - | 2 |
Every undecided number appears at least twice, so this doesn't help us. Repeating this exercise for columns 2 and 3 doesn't produce any useful information either. When we try column 4 though, we get
| Number | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Frequency | - | - | 3 | - | 4 | 3 | 3 | - | 1 |
Now the '9' only appears once, in the 5th row, so that is where it must be. We have found our second number. We can now set the '9' and repeat the process described in phase 1 giving.
| 236 | 2368 | 238 | 3567 | 1 | 9 | 3578 | 4 | 578 |
| 1239 | 23 | 4 | 8 | 2357 | 57 | 6 | 159 | 1579 |
| 7 | 5 | 1389 | 36 | 36 | 4 | 1389 | 189 | 2 |
| 36 | 9 | 378 | 1 | 578 | 2 | 578 | 568 | 4 |
| 1246 | 24678 | 1278 | 9 | 578 | 3 | 12578 | 12568 | 15678 |
| 5 | 278 | 1278 | 4 | 78 | 6 | 12789 | 3 | 1789 |
| 8 | 24 | 259 | 56 | 456 | 15 | 1259 | 7 | 3 |
| 239 | 237 | 6 | 357 | 357 | 8 | 4 | 1259 | 159 |
| 34 | 1 | 357 | 2 | 9 | 57 | 58 | 568 | 568 |
That didn't help very much, so we restart this phase at the beginning. The first four columns offer no additional insights, but now the frequencies in column 5 are
| Number | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Frequency | - | 1 | 3 | 1 | 5 | 2 | 5 | 3 | - |
Which gives us two more discoveries, '2' on the second row and '4' on the 7th. Filling these in using the phase 1 algorithm sets off a chain reaction...
| Action | Consequences |
| (2,5) = 2 | (2,2) = 3 |
| (2,2) = 3 | None |
| (7,5) = 4 | (7,2) = 2 |
| (7,2) = 2 | (8,2) = 7 |
| (8,2) = 7 | (6,2) = 8 |
| (6,2) = 8 | (1,2) = 6, (6,5) = 7 |
| (1,2) = 6 | (1,1) = 2, (5,2) = 4 |
| (6,5) = 7 | None |
| (1,1) = 2 | (1,3) = 8 |
| (5,2) = 4 | None |
| (1,3) = 8 | None |
Co-ordinates are (row, column) with the top left being (1,1). The grid now looks like this (with the new discoveries highlighted).
| 2 | 6 | 8 | 357 | 1 | 9 | 357 | 4 | 57 |
| 19 | 3 | 4 | 8 | 2 | 57 | 6 | 159 | 1579 |
| 7 | 5 | 19 | 36 | 36 | 4 | 1389 | 189 | 2 |
| 36 | 9 | 37 | 1 | 58 | 2 | 578 | 568 | 4 |
| 16 | 4 | 127 | 9 | 58 | 3 | 12578 | 12568 | 15678 |
| 5 | 8 | 12 | 4 | 7 | 6 | 129 | 3 | 19 |
| 8 | 2 | 59 | 56 | 4 | 15 | 159 | 7 | 3 |
| 39 | 7 | 6 | 35 | 35 | 8 | 4 | 1259 | 159 |
| 34 | 1 | 35 | 2 | 9 | 57 | 58 | 568 | 568 |
Restartind g this phase counting down the columns shows us that the bottom cell in the first column must be '4'. This doesn't lead to any further discoveries. Trying again reveals that the top cell in the 4th column must be '7'. This second discovery forces both (1,9) and (2,6) to be '5', which in turn forces three more discoveries, leaving.
| 2 | 6 | 8 | 7 | 1 | 9 | 3 | 4 | 5 |
| 19 | 3 | 4 | 8 | 2 | 5 | 6 | 19 | 179 |
| 7 | 5 | 19 | 36 | 36 | 4 | 189 | 189 | 2 |
| 36 | 9 | 37 | 1 | 58 | 2 | 578 | 568 | 4 |
| 16 | 4 | 127 | 9 | 58 | 3 | 12578 | 12568 | 1678 |
| 5 | 8 | 12 | 4 | 7 | 6 | 129 | 3 | 19 |
| 8 | 2 | 59 | 56 | 4 | 1 | 59 | 7 | 3 |
| 39 | 7 | 6 | 35 | 35 | 8 | 4 | 1259 | 19 |
| 4 | 1 | 35 | 2 | 9 | 7 | 58 | 568 | 68 |
Searching the columns again we see that the third cell in the fifth column must be a 6. Setting this triggers another cascade of discoveries which culminates with the solution.
| 2 | 6 | 8 | 7 | 1 | 9 | 3 | 4 | 5 |
| 1 | 3 | 4 | 8 | 2 | 5 | 6 | 9 | 7 |
| 7 | 5 | 9 | 3 | 6 | 4 | 1 | 8 | 2 |
| 3 | 9 | 7 | 1 | 8 | 2 | 5 | 6 | 4 |
| 6 | 4 | 2 | 9 | 5 | 3 | 7 | 1 | 8 |
| 5 | 8 | 1 | 4 | 7 | 6 | 2 | 3 | 9 |
| 8 | 2 | 5 | 6 | 4 | 1 | 9 | 7 | 3 |
| 9 | 7 | 6 | 5 | 3 | 8 | 4 | 2 | 1 |
| 4 | 1 | 3 | 2 | 9 | 7 | 8 | 5 | 6 |
For this example that is as far as we need to go, which is why I've described it as "Easy". I don't have any examples, but any patterns that can be solved only by using the first phase could be described as "Trivial". The next sections discuss some more difficult examples of the problem.
The first two phases are sufficient to solve most examples published in popular newspapers, but here is a more difficult example someone sent me. It only has 23 given numbers, 4 less than the previous example.
| 2 | ||||||||
| 5 | 8 | 6 | ||||||
| 3 | 8 | 5 | ||||||
| 1 | 4 | 7 | 6 | |||||
| 9 | 6 | 5 | 7 | |||||
| 7 | 3 | 9 | 4 | |||||
| 7 | 6 | 8 | ||||||
| 9 | 8 | 1 | ||||||
| 9 |
After applying phases 1 and 2 we are still left with.
| 134 | 379 | 134 | 1578 | 14589 | 14 | 2 | 679 | 13469 |
| 1234 | 5 | 8 | 127 | 1249 | 6 | 3479 | 79 | 1349 |
| 6 | 279 | 124 | 3 | 1249 | 124 | 479 | 8 | 5 |
| 238 | 1 | 23 | 4 | 7 | 5 | 6 | 29 | 289 |
| 9 | 4 | 6 | 128 | 128 | 12 | 5 | 3 | 7 |
| 5 | 28 | 7 | 6 | 3 | 9 | 1 | 4 | 28 |
| 7 | 6 | 12345 | 125 | 1245 | 8 | 349 | 259 | 2349 |
| 234 | 23 | 2345 | 9 | 2456 | 7 | 8 | 1 | 2346 |
| 1248 | 28 | 9 | 125 | 12456 | 3 | 47 | 2567 | 246 |
Which appears to have still a long way to go. If we examine the second column we can see things of interest.
The first of these rules will allow us to simplify cells (1,2) and (3,2) which currently show the options 3,7,9 and 2,7,9. Because 7 and 9 only appear in these two cells, one must contain 7 and the other 9, though we don't know which is which. This does though allow us to remove the possibilities that these cells contain a 3 or a 2.
The second of these rules applies to cells (6,2) and (9,2), both of which can only contain a 2 or an 8. Again this means that one of the cells must contain 2 and the other 8. Although we don't know which is which we do no that none of the other cells in the column can be a 2 or an 8. This allows us to remove the twos from (3,2) and (8,2), though in this case (3,2) has already had its two removed using the previous rule.
The table now looks like
| 134 | 79 | 134 | 1578 | 14589 | 14 | 2 | 679 | 13469 |
| 1234 | 5 | 8 | 127 | 1249 | 6 | 3479 | 79 | 1349 |
| 6 | 79 | 124 | 3 | 1249 | 124 | 479 | 8 | 5 |
| 238 | 1 | 23 | 4 | 7 | 5 | 6 | 29 | 289 |
| 9 | 4 | 6 | 128 | 128 | 12 | 5 | 3 | 7 |
| 5 | 28 | 7 | 6 | 3 | 9 | 1 | 4 | 28 |
| 7 | 6 | 12345 | 125 | 1245 | 8 | 349 | 259 | 2349 |
| 234 | 3 | 2345 | 9 | 2456 | 7 | 8 | 1 | 2346 |
| 1248 | 28 | 9 | 125 | 12456 | 3 | 47 | 2567 | 246 |
With the changed cells in green. The fact that 3 is now in a cell on it's own means that we can eliminate all the other 3's in the same block or row.
| 134 | 79 | 134 | 1578 | 14589 | 14 | 2 | 679 | 13469 |
| 1234 | 5 | 8 | 127 | 1249 | 6 | 3479 | 79 | 1349 |
| 6 | 79 | 124 | 3 | 1249 | 124 | 479 | 8 | 5 |
| 238 | 1 | 23 | 4 | 7 | 5 | 6 | 29 | 289 |
| 9 | 4 | 6 | 128 | 128 | 12 | 5 | 3 | 7 |
| 5 | 28 | 7 | 6 | 3 | 9 | 1 | 4 | 28 |
| 7 | 6 | 1245 | 125 | 1245 | 8 | 349 | 259 | 2349 |
| 24 | 3 | 245 | 9 | 2456 | 7 | 8 | 1 | 246 |
| 1248 | 28 | 9 | 125 | 12456 | 3 | 47 | 2567 | 246 |
In this case there are no more pairs that can be used to simplify the grid, so we move onto phase 4, Eliminating Bad Guesses.
This phase is simple to described but harder to implement. In the previous example, after exhausting phase 3 we are still left with
| 134 | 79 | 134 | 1578 | 14589 | 14 | 2 | 679 | 13469 |
| 1234 | 5 | 8 | 127 | 1249 | 6 | 3479 | 79 | 1349 |
| 6 | 79 | 124 | 3 | 1249 | 124 | 479 | 8 | 5 |
| 238 | 1 | 23 | 4 | 7 | 5 | 6 | 29 | 289 |
| 9 | 4 | 6 | 128 | 128 | 12 | 5 | 3 | 7 |
| 5 | 28 | 7 | 6 | 3 | 9 | 1 | 4 | 28 |
| 7 | 6 | 1245 | 125 | 1245 | 8 | 349 | 259 | 2349 |
| 24 | 3 | 245 | 9 | 2456 | 7 | 8 | 1 | 246 |
| 1248 | 28 | 9 | 125 | 12456 | 3 | 47 | 2567 | 246 |
The next phase involves making guesses and seeing the consequences. There are three possible outcomes,
This first outcome at first glance appears to be ideal, but at this moment we don't know there is only one solution so we ignore it. Instead what we look for is outcome 2, the contradiction becase we now know that that guess must be wrong. Looking at the table above there are 141 possible guesses, starting with the top left cell being 1.
This part of the algorithm involves making that guess and then applying the three previous phases to see where it leads us. In this case setting cell (1,1) to 1 leads to a contradiction so we can eliminate that guess leaving only 3 or 4 in the top left cell. Trying 3 causes no problems but 4 leads to a contradiction, so we can eliminate that too.
Now we only have 3 left so that must be the value in the top left cell. Fixing this value and applying the previous phases leads to the solution
| 3 | 9 | 1 | 8 | 5 | 4 | 2 | 7 | 6 |
| 4 | 5 | 8 | 7 | 2 | 6 | 3 | 9 | 1 |
| 6 | 7 | 2 | 3 | 9 | 1 | 4 | 8 | 5 |
| 8 | 1 | 3 | 4 | 7 | 5 | 6 | 2 | 9 |
| 9 | 4 | 6 | 1 | 8 | 2 | 5 | 3 | 7 |
| 5 | 2 | 7 | 6 | 3 | 9 | 1 | 4 | 8 |
| 7 | 6 | 4 | 2 | 1 | 8 | 9 | 5 | 3 |
| 2 | 3 | 5 | 9 | 6 | 7 | 8 | 1 | 4 |
| 1 | 8 | 9 | 5 | 4 | 3 | 7 | 6 | 2 |
If we take the example from the start of phase 3 (Pairs) and remove the '6' on the fifth row we are left with this puzzle.
| 2 | ||||||||
| 5 | 8 | 6 | ||||||
| 3 | 8 | 5 | ||||||
| 1 | 4 | 7 | 6 | |||||
| 9 | 5 | 7 | ||||||
| 7 | 3 | 9 | 4 | |||||
| 7 | 6 | 8 | ||||||
| 9 | 8 | 1 | ||||||
| 9 |
After applying the first 4 phases we are left with
| 134 | 79 | 134 | 78 | 1589 | 45 | 2 | 67 | 1346 |
| 1234 | 5 | 8 | 127 | 129 | 6 | 3479 | 379 | 134 |
| 126 | 79 | 26 | 3 | 129 | 14 | 479 | 8 | 5 |
| 8 | 1 | 35 | 4 | 7 | 25 | 6 | 239 | 39 |
| 9 | 34 | 346 | 168 | 68 | 12 | 5 | 23 | 7 |
| 56 | 2 | 7 | 56 | 3 | 9 | 1 | 4 | 8 |
| 7 | 6 | 1234 | 12 | 1245 | 8 | 349 | 359 | 2349 |
| 2345 | 34 | 2345 | 9 | 2456 | 7 | 8 | 1 | 2346 |
| 145 | 8 | 9 | 1256 | 12456 | 3 | 47 | 567 | 246 |
Phase 5 works by working through the possible values recursively until it finds a solution or a contradiction. It steps through the possible guesses sequentially. The first cell (1,1) can be 1, 3 or 4. Choosing 1 gives
| 1 | 79 | 34 | 8 | 59 | 45 | 2 | 67 | 346 |
| 34 | 5 | 8 | 7 | 2 | 6 | 349 | 39 | 1 |
| 26 | 79 | 26 | 3 | 19 | 14 | 479 | 8 | 5 |
| 8 | 1 | 35 | 4 | 7 | 25 | 6 | 239 | 39 |
| 9 | 34 | 346 | 16 | 8 | 12 | 5 | 23 | 7 |
| 56 | 2 | 7 | 56 | 3 | 9 | 1 | 4 | 8 |
| 7 | 6 | 1 | 2 | 45 | 8 | 349 | 359 | 349 |
| 2345 | 34 | 2345 | 9 | 456 | 7 | 8 | 1 | 346 |
| 45 | 8 | 9 | 156 | 1456 | 3 | 47 | 567 | 2 |
The next guess is to try 7 in cell (1,2). This leads to
| 1 | 7 | 3 | 8 | 9 | 5 | 2 | 6 | 4 |
| 4 | 5 | 8 | 7 | 2 | 6 | 39 | 39 | 1 |
| 2 | 9 | 6 | 3 | 1 | 4 | 7 | 8 | 5 |
| 8 | 1 | 5 | 4 | 7 | 2 | 6 | 39 | 39 |
| 9 | 3 | 4 | 6 | 8 | 1 | 5 | 2 | 7 |
| 6 | 2 | 7 | 5 | 3 | 9 | 1 | 4 | 8 |
| 7 | 6 | 1 | 2 | 4 | 8 | 39 | 5 | 39 |
| 3 | 4 | 2 | 9 | 5 | 7 | 8 | 1 | 6 |
| 5 | 8 | 9 | 1 | 6 | 3 | 4 | 7 | 2 |
The third guess, setting (2,7) to 3 leads to a solution
| 1 | 7 | 3 | 8 | 9 | 5 | 2 | 6 | 4 |
| 4 | 5 | 8 | 7 | 2 | 6 | 3 | 9 | 1 |
| 2 | 9 | 6 | 3 | 1 | 4 | 7 | 8 | 5 |
| 8 | 1 | 5 | 4 | 7 | 2 | 6 | 3 | 9 |
| 9 | 3 | 4 | 6 | 8 | 1 | 5 | 2 | 7 |
| 6 | 2 | 7 | 5 | 3 | 9 | 1 | 4 | 8 |
| 7 | 6 | 1 | 2 | 4 | 8 | 9 | 5 | 3 |
| 3 | 4 | 2 | 9 | 5 | 7 | 8 | 1 | 6 |
| 5 | 8 | 9 | 1 | 6 | 3 | 4 | 7 | 2 |
Stepping back one guess and trying (2,7) = 9 also leads to a solution. All in all there are 32 possibilities, see here.
There are two scripts to choose from. Click on the link to download the corresponding one.
| SuSolver.py | The new script. This implements the 5 phases described above except the first part of phase 3 (looking for numbers that only appear twice and in pairs). This solves all the examples I have tried. When it can't solve a puzzle using the first 4 phases it enters phase 5 which is intended to enumerate the possible solutions (on the assumption that there are more than one). If there is only 1 solution which isn't found after the first 4 phases then phase 5 will find it. |
| OldSuSolver.py | This is the previous version I published. It is very similar but in place of the current phase 4 it went straight into a recursive algorithm. The problem with this version is that it will always find a solution even when there aren't any, picking the first one it finds from the set of possibilities. I'm pretty confident though, that if there is a unique solution it will find it. |
More information about running Python scripts can be found on the Python Patterns page.
| Visits since June 2005: |


CrimPapers
Articles published on 24 July 2019
On 24 July 2019, 13 new articles were published in 10 journals.
Popular Culture and Social Control: the Moral Panic on Music Labeling
Comparative Outcomes For A National Cohort of Persons Convicted of Murder, With and Without Serious Mental Illness, and Those Found Not Guilty By Reason of Insanity on A Murder Charge: A 25‐year Follow‐up Study by Jeremy Skipworth,
wendy Bevin,
brian McKenna,
alexander I.f. Simpson,
phil Brinded,
janet Pearson
Circumstantial Powers of “Special Fire Police” in Pennsylvania: Statutory Consequences and Recommendations by Wesley R. Attwood, Melissa Sneath, John G. Thacik
Book Review: Nancy E. Marion, Drug Policy and the Criminal Justice System by Blair Fisher, Kathryn Witherow, Nathan E. Kruis
“St. Mary’s Is Gay-Town”: Girls’ Perceptions of Same-Sex Sexual Behavior in Juvenile Residential Treatment by Vanessa R. Panfil, Dana Peterson
Co-Authoring Desistance Narratives: Analysing Interactions in Groupwork For Addressing Sexual Offending by Eve Mullins, Steve Kirkwood
The Moderating Effect of Substance Abuse Treatment Engagement on the Connection Between Support From Program Participants and Substance-Related Recidivism For Justice-Involved Women by Marva V. Goodson, Merry Morash, Deborah A. Kashy
The Relationship Between Childhood Adversity and Other Aspects of Clinical Complexity in Psychiatric Outpatients by Robert G. Maunder, Lesley Wiesenfeld, Andrea Lawson, Jonathan J. Hunter
Help-Seeking Experiences of Immigrant Domestic Violence Survivors in Australia: A Snapshot of Muslim Survivors by Nafiseh Ghafournia, Patricia Easteal
Childhood Experiences and Intimate Partner Violence Among Kenyan Males: Mediation By Self-Esteem and Impulsivity by Michael Goodman, Salome A. Wangamati, Florence K. N. Maranga, Stanley Gitari, Sarah Seidel, Philip Keiser
An Appraisal of Investigative Psychology and the Applications to Suspicious Approaches to Children in the Irish Criminal Justice System by Padraig O'Meara,
angela Coyne,
mary Brassil
Reporting Sexual Assault: Survivors’ Satisfaction With Sexual Assault Response Personnel by Amy L. Henninger, Michiko Iwasaki, Marianna E. Carlucci, Jeffrey M. Lating
Introduction: Women, Gender, and Terrorism: Gendering Terrorism by Cyndi Banks


Brain storm and come up with a solution to the need
Contact any needed partners
Execute the project
Monitor and Evaluate the growth
In Enactus Unical, we have expeerienced the strength of common individuals. We have realised that when we come together to execute projects, we accomplish more than what even the government can. Our success stories strenghten us to solve more needs.


Nike Celebrates Ekiden Season With Updated Zoom Pack
Dropping in a bullet train-inspired colorway.
by Jack StanleyNike has returned to its Zoom family of silhouettes for a new pack celebrating Ekiden season in Japan. Beginning in October and continuing until the end of the year, Ekiden season sees thousands of teams from high schools and universities, as well as professional groups, compete in intranational road-racing relays across the country.
The silhouettes included are the Zoom Fly 3, the ZoomX Vaporfly NEXT%, the Zoom Pegasus Turbo 2, the Air Zoom Pegasus 36 and the Zoom Rival Fly. Marking Ekiden season, the most-watched annual sporting event in Japan, Nike has all wrapped five silhouettes in a teal colorway inspired by the country’s bullet trains. Throughout the pack there is also darker detailing, and hits of bold orange.
Take a look at the Nike Ekiden Zoom Pack in the gallery above, before it releases in Japan on December 3. The full capsule will then launch globally via the Nike web store on January 2.
In other Nike news, take a look at the third collaboration with Matthew M Williams.
Nike Ekiden Zoom Pack
Release Date
December 03, 2019 - 12:00 am EST (TBC)
Price
TBC


View all of my projects on my public GitHub page. Feel free to fork, pull request, or comment!
NodeJS implementation of a Telegram <=> IRC bridge for use with any IRC channel and Telegram group
Find out more information about the 'Server of the Mines' Minecraft Server. This server is whitelisted.


2018 Yelp Reviews Visualization
The purpose of this project was to visualize top words used by people and to show the negativity/subjectivity of Yelp reviews for 2018.
The original dataset included more than 10 years of data and over 6.6M reviews. However, the entire dataset was too big to be handled on my local computer. The dataset was then reduced to the most recent year 2018 which included over 1.1M reviews for the data cleaning and analysis purpose. However, 1.1M data points were too big to be plotted on my local computer for the visualization purpose. The dataset was further reduced to 50% of 1.1M reviews for visualization purpose. Each review was cleaned and categorized as negative, positive and neutral words to create the word clouds. The sentiment analysis for polariy and subjectivity were categorized based on the star ratings.
Data source: www.kaggle.com
Data cleaning/analysis technique reference: www.github.com


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object uchicago.src.sim.gui.FrameFactory
public class FrameFactory
A Factory for JFrames that adds support for persistent location and size. Individual JFrames are identified by their title. So, two or more JFrames with the same title will be treated has having the same location and size.
Any JFrame created with createFrame
will have its size and
location (its bounds property) saved and indexed to that JFrame's
title when the JFrame is closed. When a JFrame with this title is created
its bounds are set to the saved value. The saved bounds information can
also be accessed via the getBounds
method.
The size and location data is persisted between application instances
via an xml file. The file is stored in $HOME/fully_qualified_model_name_as_dir/frame_props.xml.
So, for example, if the home directory is /home/nick and the fully qualified
model name is uchicago.src.sim.heatBugs, then the file path is
/home/nick/.repast/uchicago/src/sim/heatBugs/frame_props.xml.
The xml itself is human readable, but is liable to change. An example follows:
| Method Summary | |
|---|---|
static javax.swing.JFrame |
createFrame(java.lang.String title)
Returns a new JFrame with specified title as its title and size and location if any. |
static java.awt.Rectangle |
getBounds(java.lang.String frameTitle)
Returns the bounds, if any, associated with this frameName. |
static void |
load(java.lang.String fqModelName)
Loads the frame data for the specified model. |
static void |
saveFrameData(java.lang.String fqModelName)
Saves the frame data for the specified model. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static void load(java.lang.String fqModelName)
fqModelName
- the name of the model to load the data forpublic static javax.swing.JFrame createFrame(java.lang.String title)
title
- the title of the JFrame to create
public static java.awt.Rectangle getBounds(java.lang.String frameTitle)
frameTitle
- the title of the JFrame whose bounds data this returns
public static void saveFrameData(java.lang.String fqModelName)
fqModelName
- the fully qualified name of the model whose frame data
we want to save
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |