Turkish Airlines passengers 'panic' as Boeing 737 crash lands in fierce winds
The plane carrying 134 passengers and crew skidded off the runway tearing its landing gear off in the incident at Ukraine's Odessa International Airport
by Will Stewart, https://www.mirror.co.uk/authors/will-stewart/Panic erupted on a Turkish Airlines Boeing 737 during a terrifying crash landing in strong winds in Ukraine.
The aircraft’s front landing gear was 'torn off' as the plane skidded off the runway in Odessa.
A total of 134 people evacuated mainly from emergency chutes at the rear of the 737-800.
The plane came within a few feet of the ground on an aborted first landing attempt but went around again, say reports.
A passenger told Strana Ukraine: “We started descending and the moment the plane touched the ground we felt a strong smell of smoke.
“Panic erupted.
"Everyone panicked, even the crew.
“The plane skidded off the runway and stopped in a field.”
Footage appeared to show that the aircraft came to rest on a taxiway.
“There was deathly silence inside the plane when the braking started.
“Then the chutes were lowered quick and people were evacuated.”
The front wheel of the plane broke and the nose was resting on the ground.
Pictures show the Boeing with its nose down and tail up.
Some reports said the crew were not able to use the forward chutes and most passengers exited from the rear.
A video shows people coming down a chute in darkness after the plane came to rest on a taxiway.
There were “no injuries” in the evacuation.
Turkish Airlines said all 134 passengers and crew were healthy and had safely evacuated.
The airport was closed for several hours after the emergency on Thursday evening.
The incident involved flight TK467 from Istanbul to the Black Sea port city of Odessa which usually takes 90 minutes.
Winds were reported as up to 24 metres a second with stormy weather leading to raging seas and trees torn down.
It was the second accident on the same day at Odessa International Airport.
Earlier the airport had been closed for two hours after a business jet suffered a problem during an aborted takeoff.
Turkish Airlines has been approached for comment.


@Master['_layout.html'] @Section['navbar']
Already have an account? Sign in
By clicking Register, you agree to our terms of service and privacy policy.


Java Stream API
is available.
Though Guava Iterable API
provides functionality similar to Java Streams API
, it's slightly different and
may miss some features.
Especially, primitive-specialized stream variants like IntStream
are more performant than generic variants.
Example:
List<String> transformedIterable = Iterables.transform(someList, someTransformFunction);//warning: Pseudo functional style code
After the quick-fix is applied:
List<String> transformedIterable = someList.stream().map(someTransformFunction).collect(Collectors.toList());
Note: Code semantics can be changed; for example, Guava's Iterable.transform
produces a lazy-evaluated iterable,
but the replacement is eager-evaluated.
This inspection only reports if the language level of the project or module is 8 or higher.


Coconuts
问题描述 :
A group of n castle guards are voting to determine whether African swallows can carry coconuts. While each guard has his own personal opinion on the matter, a guard will often vote contrary to his beliefs in order to avoid disagreeing with the votes of his friends.
You are given a list of guards who either do or do not believe in the coconut-carrying capacity of African swallows, and a list of all pairs of guards who are friends. Your task is to determine how each guard must vote in order to minimize the sum of the total number of disagreements between friends and the total number of guards who must vote against their own beliefs.
输入:
The input to this problem will contain multiple test cases. Each test case begins with a single line containing an integer n (where 2 <= n <= 300), the number of guards, and an integer m (where 1 <= m <= n(n-1)/2), the number of pairs of guards who are friends. The second line of the test case contains n integers, where the ith integer is 1 if the ith guard believes in the ability of African swallows to carry coconuts, and 0 otherwise. Finally, the next m lines of the test case each contain two distinct integers i and j (where 1 <= i, j <= n), indicating that guards i and j are friends. Guards within each pair of friends may be listed in any order, but no pair of guards will be repeated. The input is terminated by an invalid test case with n = m = 0, which should not be processed.
输出:
The input to this problem will contain multiple test cases. Each test case begins with a single line containing an integer n (where 2 <= n <= 300), the number of guards, and an integer m (where 1 <= m <= n(n-1)/2), the number of pairs of guards who are friends. The second line of the test case contains n integers, where the ith integer is 1 if the ith guard believes in the ability of African swallows to carry coconuts, and 0 otherwise. Finally, the next m lines of the test case each contain two distinct integers i and j (where 1 <= i, j <= n), indicating that guards i and j are friends. Guards within each pair of friends may be listed in any order, but no pair of guards will be repeated. The input is terminated by an invalid test case with n = m = 0, which should not be processed.
样例输入:
3 3 1 0 0 1 2 1 3 3 2 6 6 1 1 1 0 0 0 1 2 2 3 4 2 3 5 4 5 5 6 0 0
样例输出:
1 2HintNotes: In the first test case, the best result is achieved when all guards vote that African swallows cannot carry coconuts. Here, there is only a penalty of 1 for the first guard voting against his beliefs. In the second test case, the best result is achieved when each guard votes for his beliefs. The penalty of 2 arises from the disagreements between guards 2 and 4, and guards 3 and 5.
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef long long ll; const int X = 1005; ll a[X],b[X]; ll ans; int n; int main(){ freopen("ain.txt","r",stdin); int ncase; cin>>ncase; while(ncase--){ cin >> n; ans = 0; ll x = 0,y = 0; for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); x += a[i]*a[i]; } for(int i=1;i<=n;i++){ scanf("%lld",&b[i]); y += b[i]*b[i]; ans -= a[i]*b[i]; } cout<<-ans*ans+x*y<<endl; } return 0; }
参考：http://www.cnblogs.com/yejinru/archive/2013/01/16/2862983.html
(adsbygoogle = window.adsbygoogle || []).push({});
唉…又七夕了呀
int L[m+1][n+1];这样定义出错，这个在gcc上可以编译通过 在VS上不行 应该改为new 或者vector
博主的C++功底真是好
多谢支持！
算法是程序的灵魂，算法分简单和复杂，如果不搞大数据类，程序员了解一下简单点的算法也是可以的，但是会算法的一定要会编程才行，程序员不一定要会算法，利于自己项目需要的可以简单了解。
在第 18行的，while(scanf("%d %dn", &n, &c), n)，这句有错吧
从数学角度确实是C(n,r)，能给个递推关系式吗，从分治的角度不好理解
是穷举，但是代码有优化（v数组），并不是2^n。测试数据应该没问题，之前有超时的代码。
失误失误，转载错了。已经改正，抱歉。
还是有些难度的！
打字员路过。。。。。。算法是啥。。。能干嘛。。。。。。。。能吃么。。哎


Add
drb
,mutex_m
andbase64
that are bundled gem candidates for Ruby 3.4Yasuo Honda
When using cache format version >= 7.1 or a custom serializer, expired and version-mismatched cache entries can now be detected without deserializing their values.
Jonathan Hefner
Make all cache stores return a boolean for
#delete
Previously the
RedisCacheStore#delete
would return1
if the entry exists and0
otherwise. Now it returns true if the entry exists and false otherwise, just like the other stores.The
FileStore
would returnnil
if the entry doesn't exists and returnsfalse
now as well.Petrik de Heus
Active Support cache stores now support replacing the default compressor via a
:compressor
option. The specified compressor must respond todeflate
andinflate
. For example:module MyCompressor def self.deflate(string) # compression logic... end def self.inflate(compressed) # decompression logic... end end config.cache_store = :redis_cache_store, { compressor: MyCompressor }
Jonathan Hefner
Active Support cache stores now support a
:serializer
option. Similar to the:coder
option, serializers must respond todump
andload
. However, serializers are only responsible for serializing a cached value, whereas coders are responsible for serializing the entire::ActiveSupport::Cache::Entry
instance. Additionally, the output from serializers can be automatically compressed, whereas coders are responsible for their own compression.Specifying a serializer instead of a coder also enables performance optimizations, including the bare string optimization introduced by cache format version 7.1.
The
:serializer
and:coder
options are mutually exclusive. Specifying both will raise anArgumentError
.Jonathan Hefner
Fix
ActiveSupport::Inflector.humanize(nil)
raisingNoMethodError: undefined method `end_with?' for nil:NilClass
.James Robinson
Don't show secrets for ActiveSupport::KeyGenerator#inspect.
Before:
ActiveSupport::KeyGenerator.new(secret).inspect "#<ActiveSupport::KeyGenerator:0x0000000104888038 ... @secret=\"\\xAF\\bFh]LV}q\\nl\\xB2U\\xB3 ... >"
After:
ActiveSupport::KeyGenerator::Aes256Gcm(secret).inspect "#<ActiveSupport::KeyGenerator:0x0000000104888038>"
Petrik de Heus
Improve error message when EventedFileUpdateChecker is used without a compatible version of the Listen gem
Hartley McGuire
Add
:report
behavior for DeprecationSetting
config.active_support.deprecation = :report
uses the error reporter to report deprecation warnings to::ActiveSupport::ErrorReporter
.Deprecations are reported as handled errors, with a severity of
:warning
.Useful to report deprecations happening in production to your bug tracker.
Étienne Barrié
Rename Range#overlaps? to
#overlap?
and add alias for backwards compatibilityChristian Schmidt
Fix
EncryptedConfiguration
returning incorrect values for someHash
methodsHartley McGuire
Don't show secrets for
MessageEncryptor#inspect
.Before:
ActiveSupport::MessageEncryptor.new(secret, cipher: "aes-256-gcm").inspect "#<ActiveSupport::MessageEncryptor:0x0000000104888038 ... @secret=\"\\xAF\\bFh]LV}q\\nl\\xB2U\\xB3 ... >"
After:
ActiveSupport::MessageEncryptor.new(secret, cipher: "aes-256-gcm").inspect "#<ActiveSupport::MessageEncryptor:0x0000000104888038>"
Petrik de Heus
Don't show contents for
EncryptedConfiguration#inspect
.Before:
Rails.application.credentials.inspect "#<ActiveSupport::EncryptedConfiguration:0x000000010d2b38e8 ... @config={:secret=>\"something secret\"} ... @key_file_contents=\"915e4ea054e011022398dc242\" ...>"
After:
Rails.application.credentials.inspect "#<ActiveSupport::EncryptedConfiguration:0x000000010d2b38e8>"
Petrik de Heus
ERB::Util.html_escape_once always returns an
html_safe
string.This method previously maintained the
html_safe?
property of a string on the return value. Because this string has been escaped, however, not marking it ashtml_safe
causes entities to be double-escaped.As an example, take this view snippet:

<%= html_escape_once("this & that & the other") %>

Before this change, that would be double-escaped and render as:

this & that & the other

After this change, it renders correctly as:

this & that & the other

Fixes #48256
Mike Dalessio
Deprecate
SafeBuffer#clone_empty
.This method has not been used internally since Rails 4.2.0.
Mike Dalessio
MessageEncryptor
,MessageVerifier
, andconfig.active_support.message_serializer
now accept:message_pack
and:message_pack_allow_marshal
as serializers. These serializers require themsgpack
gem (>= 1.7.0).The Message Pack format can provide improved performance and smaller payload sizes. It also supports round-tripping some Ruby types that are not supported by JSON. For example:
verifier = ActiveSupport::MessageVerifier.new("secret") data = [{ a: 1 }, { b: 2 }.with_indifferent_access, 1.to_d, Time.at(0, 123)] = verifier.generate(data) # BEFORE with config.active_support.message_serializer = :json verifier.verified( ) # => [{"a"=>1}, {"b"=>2}, "1.0", "1969-12-31T18:00:00.000-06:00"] verifier.verified( ).map(&:class) # => [Hash, Hash, String, String] # AFTER with config.active_support.message_serializer = :message_pack verifier.verified( ) # => [{:a=>1}, {"b"=>2}, 0.1e1, 1969-12-31 18:00:00.000123 -0600] verifier.verified( ).map(&:class) # => [Hash, ActiveSupport::HashWithIndifferentAccess, BigDecimal, Time]
The
:message_pack
serializer can fall back to deserializing with::ActiveSupport::JSON
when necessary, and the:message_pack_allow_marshal
serializer can fall back to deserializing withMarshal
as well as::ActiveSupport::JSON
. Additionally, the:marshal
,:json
, and:json_allow_marshal
serializers can now fall back to deserializing with::ActiveSupport::MessagePack
when necessary. These behaviors ensure old messages can still be read so that migration is easier.Jonathan Hefner
A new
7.1
cache format is available which includes an optimization for bare string values such as view fragments.The
7.1
cache format is used by default for new apps, and existing apps can enable the format by settingconfig.load_defaults 7.1
or by settingconfig.active_support.cache_format_version = 7.1
inconfig/application.rb
or aconfig/environments/*.rb
file.Cache entries written using the
6.1
or7.0
cache formats can be read when using the7.1
format. To perform a rolling deploy of a Rails 7.1 upgrade, wherein servers that have not yet been upgraded must be able to read caches from upgraded servers, leave the cache format unchanged on the first deploy, then enable the7.1
cache format on a subsequent deploy.Jonathan Hefner
Active Support cache stores can now use a preconfigured serializer based on
::ActiveSupport::MessagePack
via the:serializer
option:config.cache_store = :redis_cache_store, { serializer: : }
The
:message_pack
serializer can reduce cache entry sizes and improve performance, but requires themsgpack
gem (>= 1.7.0).The
:message_pack
serializer can read cache entries written by the default serializer, and the default serializer can now read entries written by the:message_pack
serializer. These behaviors make it easy to migrate between serializer without invalidating the entire cache.Jonathan Hefner
Object#deep_dup no longer duplicate named classes and modules.
Before:
hash = { class: Object, module: Kernel } hash.deep_dup # => {:class=>#<Class:0x00000001063ffc80>, :module=>#<Module:0x00000001063ffa00>}
After:
hash = { class: Object, module: Kernel } hash.deep_dup # => {:class=>Object, :module=>Kernel}
Jean Boussier
Consistently raise an
ArgumentError
if the::ActiveSupport::Cache
key is blank.Joshua Young
Deprecate usage of the singleton
::ActiveSupport::Deprecation
.All usage of
::ActiveSupport::Deprecation
as a singleton is deprecated, the most common one beingActiveSupport::Deprecation.warn
. Gem authors should now create their own deprecator (::ActiveSupport::Deprecation
object), and use it to emit deprecation warnings.Calling any of the following without specifying a deprecator argument is also deprecated:
- Module.deprecate
- deprecate_constant
- DeprecatedObjectProxy
- DeprecatedInstanceVariableProxy
- DeprecatedConstantProxy
- deprecation-related test assertions
Use of
ActiveSupport::Deprecation.silence
and configuration methods likebehavior=
,disallowed_behavior=
,disallowed_warnings=
should now be aimed at the application's deprecators.Rails.application.deprecators.silence do # code that emits deprecation warnings end
If your gem has a Railtie or Engine, it's encouraged to add your deprecator to the application's deprecators, that way the deprecation related configuration options will apply to it as well, e.g.
config.active_support.report_deprecations
set tofalse
in the production environment will also disable your deprecator.initializer "my_gem.deprecator" do |app| app.deprecators[:my_gem] = MyGem.deprecator end
Étienne Barrié
Add Object#with to set and restore public attributes around a block
client.timeout # => 5 client.with(timeout: 1) do client.timeout # => 1 end client.timeout # => 5
Jean Boussier
Remove deprecated support to generate incorrect RFC 4122 UUIDs when providing a namespace ID that is not one of the constants defined on
::Digest::UUID
.Rafael Mendonça França
Deprecate
config.active_support.use_rfc4122_namespaced_uuids
.Rafael Mendonça França
Remove implicit conversion of objects into
String
by::ActiveSupport::SafeBuffer
.Rafael Mendonça França
Remove deprecated
active_support/core_ext/range/include_time_with_zone
file.Rafael Mendonça França
Deprecate
config.active_support.remove_deprecated_time_with_zone_name
.Rafael Mendonça França
Remove deprecated override of
ActiveSupport::TimeWithZone.name
.Rafael Mendonça França
Deprecate
config.active_support.disable_to_s_conversion
.Rafael Mendonça França
Remove deprecated option to passing a format to
#to_s
inArray
,Range
,Date
,DateTime
,Time
,BigDecimal
,Float
and,Integer
.Rafael Mendonça França
Remove deprecated
ActiveSupport::PerThreadRegistry
.Rafael Mendonça França
Remove deprecated override of
Enumerable#sum
.Rafael Mendonça França
Deprecated initializing a
::ActiveSupport::Cache::MemCacheStore
with an instance ofDalli::Client
.Deprecate the undocumented option of providing an already-initialized instance of
Dalli::Client
to::ActiveSupport::Cache::MemCacheStore
. Such clients could be configured with unrecognized options, which could lead to unexpected behavior. Instead, provide addresses as documented.aledustet
Stub
Time.new()
inTimeHelpers#travel_to
travel_to Time.new(2004, 11, 24) do # Inside the `travel_to` block {Time.new} is stubbed assert_equal Time.new.year, 2004 end
fatkodima
Raise
::ActiveSupport::MessageEncryptor::InvalidMessage
from ActiveSupport::MessageEncryptor#decrypt_and_verify regardless of cipher. Previously, when aMessageEncryptor
was using a non-AEAD cipher such as AES-256-CBC, a corrupt or tampered message would raise::ActiveSupport::MessageVerifier::InvalidSignature
. Now, all ciphers raise the same error:encryptor = ActiveSupport::MessageEncryptor.new("x" * 32, cipher: "aes-256-gcm") = encryptor.encrypt_and_sign("message") encryptor.decrypt_and_verify( .next) # => raises ActiveSupport::MessageEncryptor::InvalidMessage encryptor = ActiveSupport::MessageEncryptor.new("x" * 32, cipher: "aes-256-cbc") = encryptor.encrypt_and_sign("message") encryptor.decrypt_and_verify( .next) # BEFORE: # => raises ActiveSupport::MessageVerifier::InvalidSignature # AFTER: # => raises ActiveSupport::MessageEncryptor::InvalidMessage
Jonathan Hefner
Support
nil
original values when using ActiveSupport::MessageVerifier#verify. Previously,MessageVerifier#verify
did not work withnil
original values, though bothMessageVerifier#verified
andMessageEncryptor#decrypt_and_verify
do:encryptor = ActiveSupport::MessageEncryptor.new(secret) = encryptor.encrypt_and_sign(nil) encryptor.decrypt_and_verify( ) # => nil verifier = ActiveSupport::MessageVerifier.new(secret) = verifier.generate(nil) verifier.verified( ) # => nil verifier.verify( ) # BEFORE: # => raises ActiveSupport::MessageVerifier::InvalidSignature # AFTER: # => nil
Jonathan Hefner
Maintain
html_safe?
on html_safe strings when sliced withslice
,slice!
, orchr
method.Previously,
html_safe?
was only maintained when the html_safe strings were sliced with[]
method. Now,slice
,slice!
, andchr
methods will maintainhtml_safe?
like[]
method.string = "
test
".html_safe string.slice(0, 1).html_safe? # => true string.slice!(0, 1).html_safe? # => true # maintain html_safe? after the slice! string.html_safe? # => true string.chr # => true
Michael Go
Add Object#in? support for open ranges.
assert Date.today.in?(..Date.tomorrow) assert_not Date.today.in?(Date.tomorrow..)
Ignacio Galindo
config.i18n.raise_on_missing_translations = true
now raises on any missing translation.Previously it would only raise when called in a view or controller. Now it will raise anytime
I18n.t
is provided an unrecognised key.If you do not want this behaviour, you can customise the i18n exception handler. See the upgrading guide or i18n guide for more information.
Alex Ghiculescu
::ActiveSupport::CurrentAttributes
now raises if a restricted attribute name is used.Attributes such as
set
andreset
cannot be used as they clash with theCurrentAttributes
public API.Alex Ghiculescu
HashWithIndifferentAccess#transform_keys
now takes aHash
argument, just as Ruby'sHash#transform_keys
does.Akira Matsuda
delegate
now defines method with proper arity when delegating to aClass
. With this change, it defines faster method (3.5x faster with no argument). However, in order to gain this benefit, the delegation target method has to be defined before declaring the delegation.# This defines 3.5 times faster method than before class C def self.x() end delegate :x, to: :class end class C # This works but silently falls back to old behavior because # `delegate` cannot find the definition of `x` delegate :x, to: :class def self.x() end end
Akira Matsuda
assert_difference
message now includes what changed.This makes it easier to debug non-obvious failures.
Before:
"User.count" didn't change by 32. Expected: 1611 Actual: 1579
After:
"User.count" didn't change by 32, but by 0. Expected: 1611 Actual: 1579
Alex Ghiculescu
Add ability to match exception messages to
assert_raises
assertionInstead of this
error = assert_raises(ArgumentError) do perform_service(param: 'exception') end assert_match(/incorrect param/i, error. )
you can now write this
assert_raises(ArgumentError, match: /incorrect param/i) do perform_service(param: 'exception') end
fatkodima
Add
Rails.env.local?
shorthand forRails.env.development? || {Rails}.env.test?
.DHH
::ActiveSupport::Testing::TimeHelpers
now accepts namedwith_usec
argument tofreeze_time
,travel
, andtravel_to
methods. Passing true prevents truncating the destination time withchange(usec: 0)
.KevSlashNull, and serprex
ActiveSupport::CurrentAttributes.resets now accepts a method name
The block API is still the recommended approach, but now both APIs are supported:
class Current < ActiveSupport::CurrentAttributes resets { Time.zone = nil } resets :clear_time_zone end
Alex Ghiculescu
Ensure
::ActiveSupport::Testing::Isolation::Forking
closes pipesPreviously,
Forking.run_in_isolation
opened two ends of a pipe. The fork process closed the read end, wrote to it, and then terminated (which presumably closed the file descriptors on its end). The parent process closed the write end, read from it, and returned, never closing the read end.This resulted in an accumulation of open file descriptors, which could cause errors if the limit is reached.
Sam Bostock
Fix Time#change and Time#advance for times around the end of Daylight Saving Time.
Previously, when Time#change or Time#advance constructed a time inside the final stretch of Daylight Saving Time (DST), the non-DST offset would always be chosen for local times:
# DST ended just before 2021-11-07 2:00:00 AM in US/Eastern. ENV["TZ"] = "US/Eastern" time = Time.local(2021, 11, 07, 00, 59, 59) + 1 # => 2021-11-07 01:00:00 -0400 time.change(day: 07) # => 2021-11-07 01:00:00 -0500 time.advance(seconds: 0) # => 2021-11-07 01:00:00 -0500 time = Time.local(2021, 11, 06, 01, 00, 00) # => 2021-11-06 01:00:00 -0400 time.change(day: 07) # => 2021-11-07 01:00:00 -0500 time.advance(days: 1) # => 2021-11-07 01:00:00 -0500
And the DST offset would always be chosen for times with a
TimeZone
object:Time.zone = "US/Eastern" time = Time.new(2021, 11, 07, 02, 00, 00, Time.zone) - 3600 # => 2021-11-07 01:00:00 -0500 time.change(day: 07) # => 2021-11-07 01:00:00 -0400 time.advance(seconds: 0) # => 2021-11-07 01:00:00 -0400 time = Time.new(2021, 11, 8, 01, 00, 00, Time.zone) # => 2021-11-08 01:00:00 -0500 time.change(day: 07) # => 2021-11-07 01:00:00 -0400 time.advance(days: -1) # => 2021-11-07 01:00:00 -0400
Now, Time#change and Time#advance will choose the offset that matches the original time's offset when possible:
ENV["TZ"] = "US/Eastern" time = Time.local(2021, 11, 07, 00, 59, 59) + 1 # => 2021-11-07 01:00:00 -0400 time.change(day: 07) # => 2021-11-07 01:00:00 -0400 time.advance(seconds: 0) # => 2021-11-07 01:00:00 -0400 time = Time.local(2021, 11, 06, 01, 00, 00) # => 2021-11-06 01:00:00 -0400 time.change(day: 07) # => 2021-11-07 01:00:00 -0400 time.advance(days: 1) # => 2021-11-07 01:00:00 -0400 Time.zone = "US/Eastern" time = Time.new(2021, 11, 07, 02, 00, 00, Time.zone) - 3600 # => 2021-11-07 01:00:00 -0500 time.change(day: 07) # => 2021-11-07 01:00:00 -0500 time.advance(seconds: 0) # => 2021-11-07 01:00:00 -0500 time = Time.new(2021, 11, 8, 01, 00, 00, Time.zone) # => 2021-11-08 01:00:00 -0500 time.change(day: 07) # => 2021-11-07 01:00:00 -0500 time.advance(days: -1) # => 2021-11-07 01:00:00 -0500
Kevin Hall, Takayoshi Nishida, and Jonathan Hefner
Fix MemoryStore to preserve entries TTL when incrementing or decrementing
This is to be more consistent with how MemCachedStore and RedisCacheStore behaves.
Jean Boussier
Rails.error.handle
andRails.error.record
filter now by multiple error classes.Rails.error.handle(IOError, ArgumentError) do 1 + '1' # raises TypeError end 1 + 1 # TypeErrors are not IOErrors or ArgumentError, so this will *not* be handled
Martin Spickermann
Class#subclasses and Class#descendants now automatically filter reloaded classes.
Previously they could return old implementations of reloadable classes that have been dereferenced but not yet garbage collected.
They now automatically filter such classes like
DescendantTracker#subclasses
andDescendantTracker#descendants
.Jean Boussier
Rails.error.report
now marks errors as reported to avoid reporting them twice.In some cases, users might want to report errors explicitly with some extra context before letting it bubble up.
This also allows to safely catch and report errors outside of the execution context.
Jean Boussier
Add
assert_error_reported
andassert_no_error_reported
Allows to easily asserts an error happened but was handled
report = assert_error_reported(IOError) do # ... end assert_equal "Oops", report.error. assert_equal "admin", report.context[:section] assert_equal :warning, report.severity assert_predicate report, :handled?
Jean Boussier
::ActiveSupport::Deprecation
behavior callbacks can now receive the deprecator instance as an argument. This makes it easier for such callbacks to change their behavior based on the deprecator's state. For example, based on the deprecator'sdebug
flag.3-arity and splat-args callbacks such as the following will now be passed the deprecator instance as their third argument:
->(message, callstack, deprecator) { ... }
->(*args) { ... }
->(message, *other_args) { ... }
2-arity and 4-arity callbacks such as the following will continue to behave the same as before:
->(message, callstack) { ... }
->(message, callstack, deprecation_horizon, gem_name) { ... }
->(message, callstack, *deprecation_details) { ... }
Jonathan Hefner
ActiveSupport::Deprecation#disallowed_warnings
now affects the instance on which it is configured.This means that individual
::ActiveSupport::Deprecation
instances can be configured with their own disallowed warnings, and the globalActiveSupport::Deprecation.disallowed_warnings
now only affects the globalActiveSupport::Deprecation.warn
.Before
ActiveSupport::Deprecation.disallowed_warnings = ["foo"] deprecator = ActiveSupport::Deprecation.new("2.0", "MyCoolGem") deprecator.disallowed_warnings = ["bar"] ActiveSupport::Deprecation.warn("foo") # => raise ActiveSupport::DeprecationException ActiveSupport::Deprecation.warn("bar") # => print "DEPRECATION WARNING: bar" deprecator.warn("foo") # => raise ActiveSupport::DeprecationException deprecator.warn("bar") # => print "DEPRECATION WARNING: bar"
After
ActiveSupport::Deprecation.disallowed_warnings = ["foo"] deprecator = ActiveSupport::Deprecation.new("2.0", "MyCoolGem") deprecator.disallowed_warnings = ["bar"] ActiveSupport::Deprecation.warn("foo") # => raise ActiveSupport::DeprecationException ActiveSupport::Deprecation.warn("bar") # => print "DEPRECATION WARNING: bar" deprecator.warn("foo") # => print "DEPRECATION WARNING: foo" deprecator.warn("bar") # => raise ActiveSupport::DeprecationException
Note that global
::ActiveSupport::Deprecation
methods such asActiveSupport::Deprecation.warn
andActiveSupport::Deprecation.disallowed_warnings
have been deprecated.Jonathan Hefner
Add italic and underline support to ActiveSupport::LogSubscriber#color
Previously, only bold text was supported via a positional argument. This allows for bold, italic, and underline options to be specified for colored logs.
info color("Hello world!", :red, bold: true, underline: true)
Gannon McGibbon
Add String#downcase_first method.
This method is the corollary of String#upcase_first.
Mark Schneider
thread_mattr_accessor
will call.dup.freeze
on non-frozen default values.This provides a basic level of protection against different threads trying to mutate a shared default object.
Jonathan Hefner
Add
raise_on_invalid_cache_expiration_time
config to::ActiveSupport::Cache::Store
Specifies if an
ArgumentError
should be raised if Rails.cachefetch
orwrite
are given an invalidexpires_at
orexpires_in
time.Options are
true
, andfalse
. Iffalse
, the exception will be reported ashandled
and logged instead. Defaults totrue
ifconfig.load_defaults >= 7.1
.Trevor Turk
ActiveSupport::Cache:Store#fetch
now passes an options accessor to the block.It makes possible to override cache options:
Rails.cache.fetch("3rd-party-token") do |name, | token = fetch_token_from_remote # set cache's TTL to match token's TTL .expires_in = token.expires_in token end
Andrii Gladkyi, Jean Boussier
default
option ofthread_mattr_accessor
now applies through inheritance and also across new threads.Previously, the
default
value provided was set only at the moment of defining the attribute writer, which would cause the attribute to be uninitialized in descendants and in other threads.Fixes #43312.
Thierry Deo
Redis cache store is now compatible with redis-rb 5.0.
Jean Boussier
Add
skip_nil:
support to ActiveSupport::Cache::Store#fetch_multi.Daniel Alfaro
Add
quarter
method to date/timeMatt Swanson
Fix
NoMethodError
on custom::ActiveSupport::Deprecation
behavior.ActiveSupport::Deprecation.behavior=
was supposed to accept any object that responds tocall
, but in fact its internal implementation assumed that this object could respond toarity
, so it was restricted to onlyProc
objects.This change removes this
arity
restriction of custom behaviors.Ryo Nakamura
Support
:url_safe
option forMessageEncryptor
.The
MessageEncryptor
constructor now accepts a:url_safe
option, similar to theMessageVerifier
constructor. When enabled, this option ensures that messages use a URL-safe encoding.Jonathan Hefner
Add
url_safe
option to::ActiveSupport::MessageVerifier
initializerActiveSupport::MessageVerifier.new now takes optional
url_safe
argument. It can generate URL-safe strings by passingurl_safe: true
.verifier = ActiveSupport::MessageVerifier.new(url_safe: true) = verifier.generate(data) # => URL-safe string
This option is
false
by default to be backwards compatible.Shouichi Kamiya
Enable connection pooling by default for
MemCacheStore
andRedisCacheStore
.If you want to disable connection pooling, set
:pool
option tofalse
when configuring the cache store:config.cache_store = :mem_cache_store, "cache.example.com", pool: false
fatkodima
Add
force:
support to ActiveSupport::Cache::Store#fetch_multi.fatkodima
Deprecated
:pool_size
and:pool_timeout
options for configuring connection pooling in cache stores.Use
pool: true
to enable pooling with default settings:config.cache_store = :redis_cache_store, pool: true
Or pass individual options via
:pool
option:config.cache_store = :redis_cache_store, pool: { size: 10, timeout: 2 }
fatkodima
Allow #increment and #decrement methods of
::ActiveSupport::Cache::Store
subclasses to set new values.Previously incrementing or decrementing an unset key would fail and return nil. A default will now be assumed and the key will be created.
Andrej Blagojević, Eugene Kenny
Add
skip_nil:
support toRedisCacheStore
Joey Paris
ActiveSupport::Cache::MemoryStore#write(name, val, unless_exist:true)
now correctly writes expired keys.Alan Savage
::ActiveSupport::ErrorReporter
now accepts and forward asource:
parameter.This allow libraries to signal the origin of the errors, and reporters to easily ignore some sources.
Jean Boussier
Fix and add protections for XSS in
::ActionView::Helpers
and::ERB::Util
.Add the method ERB::Util.xml_name_escape to escape dangerous characters in names of tags and names of attributes, following the specification of XML.
Álvaro Martín Fraguas
Respect ActiveSupport::Logger.new's
:formatter
keyword argumentThe stdlib
Logger::new
allows passing a:formatter
keyword argument to set the logger's formatter. Previously ActiveSupport::Logger.new ignored that argument by always setting the formatter to an instance of::ActiveSupport::Logger::SimpleFormatter
.Steven Harman
Deprecate preserving the pre-Ruby 2.4 behavior of
to_time
With Ruby 2.4+ the default for
to_time
changed from converting to the local system time to preserving the offset of the receiver. At the time Rails supported older versions of Ruby so a compatibility layer was added to assist in the migration process. From Rails 5.0 new applications have defaulted to the Ruby 2.4+ behavior and since Rails 7.0 now only supports Ruby 2.7+ this compatibility layer can be safely removed.To minimize any noise generated the deprecation warning only appears when the setting is configured to
false
as that is the only scenario where the removal of the compatibility layer has any effect.Andrew White
Pathname#blank? only returns true for
Pathname.new("")
Previously it would end up calling
Pathname#empty?
which returned true if the path existed and was an empty directory or file.That behavior was unlikely to be expected.
Jean Boussier
Deprecate
Notification::Event
's#children
and#parent_of?
John Hawthorn
Change the default serializer of
::ActiveSupport::MessageVerifier
fromMarshal
to::ActiveSupport::JSON
when usingconfig.load_defaults 7.1
.Messages serialized with
Marshal
can still be read, but new messages will be serialized with::ActiveSupport::JSON
. For more information, see https://guides.rubyonrails.org/v7.1/configuring.html#config-active-support-message-serializer.Saba Kiaei, David Buckley, and Jonathan Hefner
Change the default serializer of
::ActiveSupport::MessageEncryptor
fromMarshal
to::ActiveSupport::JSON
when usingconfig.load_defaults 7.1
.Messages serialized with
Marshal
can still be read, but new messages will be serialized with::ActiveSupport::JSON
. For more information, see https://guides.rubyonrails.org/v7.1/configuring.html#config-active-support-message-serializer.Zack Deveau, Martin Gingras, and Jonathan Hefner
Add
ActiveSupport::TestCase#stub_const
to stub a constant for the duration of a yield.DHH
Fix
::ActiveSupport::EncryptedConfiguration
to be compatible with Psych 4Stephen Sugden
Improve File.atomic_write error handling
Daniel Pepper
Fix Class#descendants and
DescendantsTracker#descendants
compatibility with Ruby 3.1.The native Class#descendants was reverted prior to Ruby 3.1 release, but Class#subclasses was kept, breaking the feature detection.
Jean Boussier
Please check [7-0-stable]) for previous changes.


$injection
identifies the injection point. The injections that modify data attempt to always use concatenation and allow the rest of the query to be valid. See this post for more information.
| Injection placement | Query | Injection string |
|---|---|---|
| SELECT -> WHERE | SELECT * FROM USERS WHERE "USER"='$injection'; | ' or 1=1 -- |
| UPDATE -> SET | UPDATE USERS SET "email"='$injection' WHERE "USER"='NetSPI'; |<EMAIL_ADDRESS>|
| UPDATE -> WHERE Note: Try to set the injection string to a valid WHERE value. If the object is updated then the injection was successful. |
UPDATE USERS SET<EMAIL_ADDRESS>WHERE "USER"='$injection'; | '+'NetSPI'+' |
| DELETE -> WHERE | DELETE USERS WHERE "User"='$injection'; | '+'NetSPI'+' |
| INSERT -> VALUES | INSERT INTO USERS ([User], [Password]) VALUES ('$injection', 'password'); | '+(select @@version)+' |


Mouse and Keyboard Arrow Keys:
Up: FASTER
Down: SLOWER
Left / Right: STEERING
iOS Devices:
Touch Green Bar: FASTER
Touch Red Bar: SLOWER
Tilt device left / right: STEERING
OK!
Choose a car:
Red
Silver
Blue
Yellow
White
Choose a course:
1
2
3
Maximum speed:
Easy-ness (% of "correct" gas cans):
Play!
Loading...
Gas:
Speed:
FASTER
SLOWER


Weather Forecasting Using Internet Of things.
The system Constantly monitors the temperature using temperature sensor,humidity using humidity sensor and also for a rain .The system constantly transmits this data to the microcontroller ,which now processes this data and keeps on transmiting it to the online web server over a Wi-Fi connection.This data is live updated to be viewed on the online server system.


this button changes my text
apparently images change when you click these buttons
changes my font-size
click button to make me go invisible and uninvisible


Working with content
The browser DOM serves its purpose—representing complex webpages—very well. But its huge scope and loose structure makes it difficult to make assumptions about. A document model that represents a smaller set of documents can be easier to reason about.
This demo implements a simple document linter that finds problems in your document, and makes it easy to fix them.
Demo
The full source code for this demo is here.
Next demo: change tracking.


Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile-first projects on the web.
{{black_regions}}


Ruby 3.0 - Single process, multiple challenges
$ whoami
Maciej Mensfeld
-
Software Engineer (10 years with Ruby)
-
Karafka creator
-
Founder of Coditsu - a comprehensive platform for insightful code analysis
-
KRUG (Kraków Ruby Users Group) organizer
Agenda
Ruby 2.*
- Objects ownership management
- GIL/GVL
- Garbage Collector
- Global Method Cache
- Deployment
- Limitations
- Immutability
Agenda
Ruby 3.0 goodies
- Guilds
- Channels
- Immutability
Agenda
Ruby 3.0 challenges
- Objects ownership management
- Giant Guild Lock
- Garbage Collector
- Global Method Cache
Agenda
Ruby 3.0 vs Ruby 2.*
- Memory usage
- Performance
- Deployment
- Design and development
- Compatibility
- Getting ready
Everything said here is based on:
- (Too) Many assumptions
- My talks with Ruby core team members (recently Hiroshi Shibata)
- My experience with Ruby 2.* and Elixir
- Examples from other languages
- Blog posts and discussions amongs Ruby community
- Presentations and other materials on Ruby 3.0
Ruby 2.*
Objects ownership management
There's none.
If you manage to get a pointer/reference to an object, you can work with it (or even unfreeze).
The only limitation is the access control layer.
Ruby 2.*
Objects ownership management
require 'fiddle'
str = 'water'.freeze
str.frozen? # true
memory_address = str.object_id * 2
Fiddle::Pointer.new(memory_address)[1] &= ~8
str.frozen? # false
Ruby 2.*
GIL/GVL
It's a lock around the execution of Ruby code. This means that in a multi-threaded context,
only one thread can execute Ruby code at any one time.
The GIL exists to protect Ruby internals from race conditions that could corrupt data.
Ruby 2.*
GIL/GVL
https://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/
Ruby 2.*
GIL/GVL
I/O-bound operations are tasks whose speed is limited by the speed of a computer’s I/O.
These I/O operations are handled outside of the Ruby interpreter in kernel space.
Since they are handled outside of the Ruby interpreter, I/O operations that are executed within threads are no longer restricted from running in parallel by the GIL.
https://blog.fluentz.io/learn-how-to-achieve-parallelism-with-ruby-i-o-bound-threads-a29c92aff58c
Ruby 2.*
Garbage Collector
Ruby Generational Garbage Collector (RGenGC)
https://www.speedshop.co/2017/03/09/a-guide-to-gc-stat.html
Ruby 2.*
Global Method Cache
Global Method Cache is a cache for method definitions.
Ruby uses the global method cache to save a mapping between the receiver and implementer classes.
Ruby 2.*
Global Method Cache
The global method cache allows Ruby to skip the method lookup process the next time your code calls a method listed in it. After your code has called Fixnum#times once, Ruby knows that it can execute the Integer#times method, regardless of from where in your program you call times .
Ruby under a Microscope
Ruby 2.*
Global Method Cache
Careless and often invalidation of this cache can have a quite big impact on our Ruby software. Especially when you have a multithreaded applications, since there’s a single global method cache per process. And constant invalidating, will require a method lookup again and again…
https://mensfeld.pl/2015/04/ruby-global-method-cache-invalidation-impact-on-a-single-and-multithreaded-applications/
Ruby 2.*
Global Method Cache
https://mensfeld.pl/2015/04/ruby-global-method-cache-invalidation-impact-on-a-single-and-multithreaded-applications/
Ruby 2.*
Deployment
- Single process role per process
- Puma/Sidekiq/Clockwork/Anything else
- Capistrano/Docker/Heroku
- Heavy memory usage
- Long shutdown time
- Slow startup until full performance reached
Ruby 2.*
Immutability
- Object#freeze
- Class#freeze
- Frozen String Literals In Ruby 2.3
- ice_nine gem - deep freezing
- hamster gem - set of persistent, immutable data structure classes
Ruby 2.*
Limitations
- GIL
- Single process role
- GC
- Parallel execution
Ruby 3.0 goodies
Ruby 3.0 goodies
Guilds
- Guilds have at least one thread (and a thread has a fiber)
- Threads in different guilds can run in parallel
- Threads in a same guild can not run in parallel because of GIL/GVL/GGL (Giant Guild Lock)
- A guild can’t access the objects of other guilds
Ruby 3.0 goodies
Guilds
- Guilds are allowed to communicate with each other using channels (Guild::Channel)
- Objects can be copied between guilds (deep copy)
- Objects can be moved between guilds
- Immutable objects (deeply immutable) can be shared between guilds
Ruby 3.0 goodies
Guilds
http://olivierlacan.com/posts/concurrency-in-ruby-3-with-guilds/
Ruby 3.0 goodies
Guilds
http://olivierlacan.com/posts/concurrency-in-ruby-3-with-guilds/
Ruby 3.0 goodies
Channels
Guilds can communicate with each other using the Guild::Channel interface which allows
for the copying or moving of objects across the channel to another Guild.
http://olivierlacan.com/posts/concurrency-in-ruby-3-with-guilds/
Ruby 3.0 goodies
Channels
http://olivierlacan.com/posts/concurrency-in-ruby-3-with-guilds/
Ruby 3.0 goodies
Channels
http://olivierlacan.com/posts/concurrency-in-ruby-3-with-guilds/
Ruby 3.0 goodies
Immutability
- String immutable by default
- Easier / faster immutable structures sharing
- A bit of functional programming FTW
Ruby 3.0 not goodies
Soft typing (proposal - rejected)
def connect(r -> Stream, c -> Client) -> Fiber
def connect(Stream r, Client c) -> Fiber
https://bugs.ruby-lang.org/issues/9999
Ruby 3.0 challenges
Objects ownership management
Objects will have guild owners. It means that Ruby will have to have references to which guild an object belongs.
Ruby 3.0 challenges
Objects ownership management
It means that Ruby will have to have some sort of checker that will run either on:
- every object access
- every object access for objects that were transfered at least once (flag or something?)
- every object access of an object that is not frozen and references in other guilds
Ruby 3.0 challenges
Objects ownership management
Ruby already checks the class of each object on it’s access, so maybe this could be combined together.
Ruby 3.0 challenges
Giant Guild Lock
- Will it be enough for Ruby dynamic character?
- What about runtime metaprogramming?
Ruby 3.0 challenges
Garbage Collector
- Will there be a single GC for all the guilds/threads?
- If so - a single guild will affect other
- If no - there will be a CPU overhead on having multiple GC executions
Ruby 3.0 challenges
Global Method Cache
- Will have even a bigger impact that it has now
- Will have to remain in Ruby
- How to lower its impact on other Guilds
Ruby 3.0 vs Ruby 2.*
Memory usage
No one knows BUT it needs to perform way better (otherwise where's the point?)
Ruby 3.0 vs Ruby 2.*
Performance
Ruby core team aims to make it 3 times faster (Ruby 3x3)
Ruby 3.0 vs Ruby 2.*
Deployment and code execution
- Single process per host
- Different deployment flow
- Hot swapping probably won't happen
- Bigger systems with more specified server roles?
Ruby 3.0 vs Ruby 2.*
Design and development
- More thinking, less coding
- It's already happening
- Designing stuff that won't break everything
- Designing stuff that will be ready for 3.0
- Designing stuff that will use 3.0 to its best
Ruby 3.0 vs Ruby 2.*
Compatibility
- 100% compatible with 2.*
- But then performance and memory usage compatible with 2.*
Ruby 3.0 vs Ruby 2.*
Getting ready
- Stop mutating things (freeze)
- Use YARD
- Design small, flexible components
- # frozen_string_literal: true
Ruby 3.0 vs Ruby 2.*
Getting ready
- Don’t try to unlearn locking and multi threading Ruby 2 approach
- Scaling with guilds won’t be linear so don’t think it will solve all your problems
- Don't invalidate method cache during runtime (too often)
- Don't use non-threadsafe gems and libraries


Back End Projects
Voting App
Nightlife Coordination App
Stock Market Browser
Book Trading Club
Pintelest Clone


{% extends 'base.html' %} {% import 'macros.html' as macro %} {%block content%}
You only have 1 minute to express your self to someone.


WITNESS LIST Revenue & Public Education Funding, Select Committee March 17, 1997-11:00A Advertising Sales Tax Against: Beaulieu, Larry (TX Assoc. Broadcasters) Davidson, James H. (TX Assoc. Broadcasters) Tillotson, Dolph (TX Press & News Assns.) Architect and Engineering Serv. Tax Against: Lancaster, David (TX Society Architects) Co-Production Tax-Oil and Gas_Tax Against: O'Brian, Obie (Apache Corporation) Coal & Lignite Use Tax On: Murphree, Roger (Assn. Electric Co. TX) Ricciardello, Mary (Assn. Electric Co. TX) Commercial Lease Tax Against: Flynn, Bob (TX Bagel Cafe) Commercial Vessels & Equipment Tax Against: Trepagnier, Paul (Corporate Tax Manager) Woodruff, William (TX Waterways Oper. Assn) Cool & Air Emissions Tax For: Smith, Tom "Smitty" (Public Citizen's) Diesel Tax Against: Kalb, Kent F. (Union Pacific RR Co.) Exemptions- General For: Peterson, John L. (himself;prof. engineer) Fly Ash Tax On: Murphree,Roger (Assn. Electric Co. TX) Ricciardello, Mary (Assn. Electric Co. TX) Franchise Tax Expansion- General Against: Flynn, Bob (TX Bagel Cafe) Franchise Tax- Insurance Against: Davis, Will D. (TX Ass. Life/Health Ins) Sellers, Kim (Amer. General Corp.) Thompson, Jay A. (Ass. Fire/Casualty Co.) Tolman, Gary (Amer. Nat'l Ins. Co.) Franchise Tax- Non. Corps. Against: Bode, Clive (Investment Partnerships) Floyd, Robert (TX Society Assoc. Exec.) On: Cowling, David (Amer. Electronics Assn.) Franchise Tax- Title Insurance Against: Evers, Alison (Stewart Title Guar. Co.) Lee, Randy (Stewart Title Guar. Co) Interstate Motor Carriers Tax Against: Pitcher, Robert C. (Amer. Trucking Assn.) Machinery and Equipment Tax Against: Cowling, David (Amer. Electronics Assn) Dipprey, Ron (TX Chemical Council) Flynn, Bob (TX Bagel Cafe) Ritter, Phil (TX Instruments Incorp.) Virga, Frederick A. (Paper & Forest Prod.) Woodrick, James (TX Chemical Council) Manufacturing Pckg. & Wrapping Tax Against: Cowling, David (Amer. Electronics Assn.) Virga, Frederick A. (Paper and Forest Prod.) Manufacturing Utility Tax Against: Cowling, David (Amer. Electronics Assn.) Dipprey, Ron (TX Chemical Council) Flynn, Bob (TX Bagel Cafe) Ricciardello, Mary (Assn.Electric Comp. TX) Ritter, Phil (TX Instruments Incorp.) Roberts, Richard (Phillips Petroleum Co.) Virga, Frederick A. (Paper and Forest Prod.) Woodrick, James V. (TX Chemical Council) Marine Equipment Tax Against: Steger, Dennis (Texas Shipyards) Maritime_Tax Against: Thorjussen, Ted (West Gulf Maritime Assn) Mining Utility Tax Against: Mills, Alex (Several Oil & Gas Assns) Motor Fuels Tax- Marine Use Against: Woodruff, William (TX Waterways Oper. Assn) Motor Fuels Tax-Aviation Fuel Against: Bethune, Gordon (Continental Airlines) Hagan, Dan (American Airlines) Poole, Blake (Delta Airlines) Ricks, Ron (Southwest Airlines) Schiffauer, Joe (Fed. Express Corp.) Property Tax Reform- General On: Maxey, Merlin (TX Petr.Markts&Con.Stor) Railway Fuel Tax Against: Barton, Bill (TX Railroad Association) Residential Utility Tax On: Murphree, Roger (Assn. Electric Co. TX) Ricciardello, Mary (Assn. Electric Co. TX) RR Rolling Stock Tax Against: Barton, Bill (TX Railroad Association) Kalb, Kent F. (Union Pacific RR Co.) Marsh, Jeff (Trinity Industries Inc.) Trepagnier, Paul (Corporate Tax Manager) Sales Tax-General Against: Accountius, Camille (herself;at home mom) Coddington, Jim (himself;the poor) On: Brand, John H. (himself;retired) Services Sales Tax On: Eads, John (TX Society CPAS) Severance and Energy Tax Against: Miercort, Clifford R. (TX Mining & Redom.Assn) Timber Partial Exemption For: Currie, Bob (TX Logging Council) Estes, Harold (TX Timberjack Inc.) Smith, Kim Roy (Kim Smith Logging Inc.) Trade Show Tax Against: Floyd, Robert (TX Society Assn. Exec.) Transportation Services Tax Against: Woodruff, William (TX Waterways Oper. Assn) Utility Taxes Against: Smith, Tom "Smitty" (Public Citizen's) On: Murphree, Roger (Assn. Electric Co. TX) Ricciardello, Mary (Assn. Electric Co. TX)


THE MEMPHIS BELLE (by William Wyler) Film comment by Mark R. Leeper
This year's MEMPHIS BELLE directed by Michael Caton-Jones is a popular film describing the last mission of the first B-17 to complete its assigned twenty-five missions. What has not been mentioned anywhere is that MEMPHIS BELLE is a partial remake of a previous film called THE MEMPHIS BELLE. The original was directed by one of Hollywood's great directors, William Wyler, who directed such films as MRS. MINIVER, THE BEST YEARS OF OUR LIVES, THE DESPERATE HOURS, THE BIG COUNTRY, BEN HUR, and FUNNY GIRL. After he completed MRS. MINIVER, Wyler enlisted in the Army Air Corps only to be assigned to make documentaries about the day-to-day business of the Army Air Corps. He made two; one was THUNDERBOLT and one was THE MEMPHIS BELLE. The latter was bout the B-17 crews stationed in England who bombed Germany and used as a focal point the last mission of the Memphis Belle. The Discovery Channel on cable just happens to be running Wyler's MEMPHIS BELLE this month.
[The following paragraph will include some spoilers about the 1990 movie.]
Wyler apparently went on several bombing missions to create the documentary, though he has what is at best only a minute or so of footage from the Belle's final flight, and that is from the landing and taken from the ground. The 1990 films seems to have much exaggerated the danger of the final mission. The following are apparently inaccuracies of the later film:
- There were no injuries on the Belle on her final mission. When she landed the crew was grinning from the windows and the glass nose. There is a reference to a transfusion in some places but it is not the Belle. The Belle had no fires, did not have to throw out its guns, and was not losing fuel.
- In the original most of the planes are not named for or illustrated with pictures of sexy women. More common are names like "Old Bill." The nose paintings usually show cartoons of nasty things happening to a frightened- looking Hitler.
- The 1990 film shows some spectacular collisions. The original film does not, but probably would not mention the dangerous mishaps.
- The 1990 production could get only eight planes. The original gives more of a feel of an armada.
- The crew looks considerably older in the original. There are references to crew members in their late teens, but most looked more like mid-thirties.
- The Belle was not assigned to Bremen; it was assigned to the submarine pens at Wilhelmshaven.
The Wyler documentary is worth seeing and makes a worthwhile supplement to the movie. After the documentary there are interviews with crew members who flew the B-17s. The contention is made that this is one of the best- designed planes ever built. Every architectural element has a backup so if it were shot away the backup takes over. The planes could be horribly shot up and still be in good flying condition, as both versions of the film showed. A German flier is quoted as saying that attacking a B-17 was "like making love to a porcupine ... on fire."
Mark R. Leeper att!mtgzy!leeper<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


SFOAuthCredentials Class Reference
| Inherits from | NSObject |
| Conforms to | NSCoding |
| Declared in | SFOAuthCredentials.h |
Overview
Object representing an individual user account’s logon credentials.
This object represents information about a user account necessary to authenticate and reauthenticate against Salesforce.com servers using OAuth2. It includes information such as the user’s account ID, the protocol to use, and any session or refresh tokens assigned by the server.
The secure information contained in this object is persisted securely within the
device’s Keychain, and is accessed by using the identifier
property.
Instances of this object are used to begin the authentication process, by supplying
it to an SFOAuthCoordinator
instance which conducts the authentication workflow.
The credentials stored in this object include:
Consumer key and secret
Request token and secret
Access token and secret
Tasks
Other Methods
-
protocol
Protocol scheme for authenticating this account.
property -
domain
Logon host domain name.
property -
identifier
Credential identifier used to uniquely identify this credential in the keychain.
property -
clientId
Client consumer key.
property -
redirectUri
Callback URL to load at the end of the authentication process.
property -
activationCode
Activation code.
property -
refreshToken
Token used to refresh the user’s session.
property -
accessToken
The access token for the user’s session.
property -
organizationId
A readonly convenience property returning the Salesforce Organization ID provided in the path component of the identityUrl.
property -
instanceUrl
The URL of the server instance for this session.
property -
issuedAt
The timestamp when the session access token was issued.
property -
identityUrl
The identity URL for the user returned as part of a successful authentication response. The format of the URL is: https://login.salesforce.com/ID/orgID/userID where orgId is the ID of the Salesforce organization that the user belongs to, and userID is the Salesforce user ID.
property -
userId
A readonly convenience property returning the first 15 characters of the Salesforce User ID provided in the final path component of the identityUrl.
property -
logLevel
The log level controlling which events are logged based on their severity.
property -
encrypted
Determines if sensitive data such as the
propertyrefreshToken
andaccessToken
are encrypted
Initialization
-
– initWithIdentifier:clientId:encrypted:
Initializes an authentication credential object with the given identifier and client ID. This is the designated initializer.
-
– revoke
Revoke the OAuth access and refresh tokens.
-
– revokeAccessToken
Revoke the OAuth access token.
-
– revokeRefreshToken
Revoke the OAuth refresh token.
-
– revokeActivationCode
Revoke the OAuth activation code.
Properties
accessToken
The access token for the user’s session.
@property (nonatomic, copy) NSString *accessToken
Discussion
The access token for the user’s session.
This property is set by the SFOAuthCoordinator
after authentication has successfully completed.
Warning: The setter for this property is exposed publicly only for unit tests. Client code should use the revoke methods instead.
Exceptions
- NSInternalInconsistencyException
If accessed while the identifier property is
nil
.
Declared In
SFOAuthCredentials.h
activationCode
Activation code.
@property (nonatomic, copy) NSString *activationCode
Discussion
Activation code.
Activation code used in the client IP/IC bypass flow.
This property is set by the SFOAuthCoordinator
after authentication has successfully completed.
Warning: The setter for this property is exposed publicly only for unit tests. Client code should not set this property.
Exceptions
- NSInternalInconsistencyException
If accessed while the identifier property is
nil
.
Declared In
SFOAuthCredentials.h
clientId
Client consumer key.
@property (copy) NSString *clientId
Discussion
Client consumer key.
Identifies the client for remote authentication.
Warning: This property must not be nil
or empty when authentication is initiated or an exception will be raised.
Warning: This property must not be modified while authenticating.
Declared In
SFOAuthCredentials.h
domain
Logon host domain name.
@property (nonatomic, copy) NSString *domain
Discussion
Logon host domain name.
The domain used to initiate a user login, for example login.salesforce.com or test.salesforce.com. The default is login.salesforce.com.
Declared In
SFOAuthCredentials.h
encrypted
Determines if sensitive data such as the refreshToken
and accessToken
are encrypted
@property (nonatomic, readonly, getter=isEncrypted) BOOL encrypted
Discussion
Determines if sensitive data such as the refreshToken
and accessToken
are encrypted
Declared In
SFOAuthCredentials.h
identifier
Credential identifier used to uniquely identify this credential in the keychain.
@property (copy) NSString *identifier
Discussion
Credential identifier used to uniquely identify this credential in the keychain.
Warning: This property is used by many underlying internal functions of this class and therefore must not be set to a
nil
or empty value prior to accessing properties or methods identified in the documentation regarding this prohibition.
Warning: This property must not be modified while authenticating.
Declared In
SFOAuthCredentials.h
identityUrl
The identity URL for the user returned as part of a successful authentication response. The format of the URL is: https://login.salesforce.com/ID/orgID/userID where orgId is the ID of the Salesforce organization that the user belongs to, and userID is the Salesforce user ID.
@property (nonatomic, copy) NSURL *identityUrl
Discussion
The identity URL for the user returned as part of a successful authentication response. The format of the URL is: https://login.salesforce.com/ID/orgID/userID where orgId is the ID of the Salesforce organization that the user belongs to, and userID is the Salesforce user ID.
This property is set by the SFOAuthCoordinator
after authentication has successfully completed.
Warning: The setter for this property is exposed publicly only for unit tests. Client code should not set this property.
Declared In
SFOAuthCredentials.h
instanceUrl
The URL of the server instance for this session.
@property (nonatomic, copy) NSURL *instanceUrl
Discussion
The URL of the server instance for this session.
This is the URL that client requests should be made to after authentication completes.
This property is set by the SFOAuthCoordinator
after authentication has successfully completed.
Warning: The setter for this property is exposed publicly only for unit tests. Client code should not set this property.
Declared In
SFOAuthCredentials.h
issuedAt
The timestamp when the session access token was issued.
@property (nonatomic, copy) NSDate *issuedAt
Discussion
The timestamp when the session access token was issued.
This property is set by the SFOAuthCoordinator
after authentication has successfully completed.
Warning: The setter for this property is exposed publicly only for unit tests. Client code should not set this property.
Declared In
SFOAuthCredentials.h
logLevel
The log level controlling which events are logged based on their severity.
@property (nonatomic, assign) SFOAuthLogLevel logLevel
Discussion
The log level controlling which events are logged based on their severity.
This property controls the logging level for all components of the SFOAuth library.
Declared In
SFOAuthCredentials.h
organizationId
A readonly convenience property returning the Salesforce Organization ID provided in the path component of the identityUrl.
@property (nonatomic, copy) NSString *organizationId
Discussion
A readonly convenience property returning the Salesforce Organization ID provided in the path component of the identityUrl.
This property is available after authentication has successfully completed.
Warning: The setter for this property is exposed publicly only for unit tests. Client code should not set this property.
Exceptions
- NSInternalInconsistencyException
If accessed while the identifier property is
nil
.
Declared In
SFOAuthCredentials.h
protocol
Protocol scheme for authenticating this account.
@property (nonatomic, readonly, retain) NSString *protocol
Discussion
Protocol scheme for authenticating this account.
Declared In
SFOAuthCredentials.h
redirectUri
Callback URL to load at the end of the authentication process.
@property (nonatomic, copy) NSString *redirectUri
Discussion
Callback URL to load at the end of the authentication process.
This must match the callback URL in the Remote Access object exactly, or authentication will fail.
Declared In
SFOAuthCredentials.h
refreshToken
Token used to refresh the user’s session.
@property (nonatomic, copy) NSString *refreshToken
Discussion
Token used to refresh the user’s session.
This property is set by the SFOAuthCoordinator
after authentication has successfully completed.
Warning: The setter for this property is exposed publicly only for unit tests. Client code should use the revoke methods instead.
Exceptions
- NSInternalInconsistencyException
If this property is accessed when the identifier property is
nil
.
Declared In
SFOAuthCredentials.h
userId
A readonly convenience property returning the first 15 characters of the Salesforce User ID provided in the final path component of the identityUrl.
@property (nonatomic, copy) NSString *userId
Discussion
A readonly convenience property returning the first 15 characters of the Salesforce User ID provided in the final path component of the identityUrl.
This property is available after authentication has successfully completed.
Warning: The setter for this property is exposed publicly only for unit tests. Client code should not set this property.
Declared In
SFOAuthCredentials.h
Instance Methods
initWithIdentifier:clientId:encrypted:
Initializes an authentication credential object with the given identifier and client ID. This is the designated initializer.
- (id)initWithIdentifier:(NSString *)theIdentifier clientId:(NSString *)theClientId encrypted:(BOOL)encrypted
Parameters
- theIdentifier
An identifier for this credential instance.
- theClientId
The client ID (also known as consumer key) to be used for the OAuth session.
- encrypted
Determines if the sensitive data like refreshToken and accessToken should be encrypted
Return Value
An initialized authentication credential object.
Discussion
Initializes an authentication credential object with the given identifier and client ID. This is the designated initializer.
The identifier uniquely identifies the credentials object within the device’s secure keychain. The client ID identifies the client for remote authentication.
Declared In
SFOAuthCredentials.h
revoke
Revoke the OAuth access and refresh tokens.
- (void)revoke
Discussion
Revoke the OAuth access and refresh tokens.
Warning: Calling this method when the identifier property is nil
will raise an NSInternalInconsistencyException.
Declared In
SFOAuthCredentials.h
revokeAccessToken
Revoke the OAuth access token.
- (void)revokeAccessToken
Discussion
Revoke the OAuth access token.
Exceptions
- NSInternalInconsistencyException
If called when the identifier property is
nil
.
Declared In
SFOAuthCredentials.h


This is a final year project which demonstrates a way to represent an operating system solely written using web languages such as HTML, CSS, and JavaScript.
The project also makes a use of VueJS which is a JavaScript framework
Icons provided by Font Awesome
The site currently doesn't collect any data.
The project is available on GitHub


Modern Preparations
"The Authorative and Curated Voice for All Your Preparedness Needs"
Launching Winter 2017


--- title: Page not found permalink: /404.html layout: 404 --- {% include header.html %} 404 Page not found 😱 The requested page could not be found. Recent posts:
Page not found 😱
The requested page could not be found.


DiversaTech is UC Berkeley's leading tech consultancy. We combine engineering, design, and business principles to create dynamic recommendations and strategies.
DiversaTech fosters diversity of thought in the tech industry by creating unique experiences and projects that encourage students of all backgrounds to connect, collaborate, and create.
We form interdisciplinary consulting teams and develop strategic recommendations that address real industry challenges.
Content Update Soon!
EECS / Computer Science
Cognitive Science
Math / Statistics
Business / Economics
Other Humanties
Other Sciences
See what our faculty advisors say about DiversaTech!


How Not to Say "Um" When Presenting
I’ll start with the tip, then unpack the reason why it works and explain how to apply it. To avoid those hemming and hawing filler words—um, y’know, like—and give your presentations the polish of eloquence:
Make eye contact.
An Excursion into Psycholinguistics
To avoid filler words, it helps to understand why we say them, which falls under the domain of psycholinguistics.
When you and I are having a conversation, we take turns speaking, and we use a variety of verbal and non-verbal cues to signal when to switch. I’ll ask a question and then pause, and you instinctively know that it is your turn to talk. While you’re telling a story, you’ll pause periodically to see if I am following, and I will make an encouraging sound (“mm hm” or “go on”) to confirm that it is still your turn. You might say something that sparks an idea in me that I very much want to share, and the changes in my facial expression—bright eyes and an intake in breath—convey my request to have a turn.
Note that most of those transitions were signaled by a pause. To avoid being interrupted, when you need a moment to organize your thoughts but are not ready to relinquish your turn, you’ll phonate (fancy linguist term for “make noise with your speech apparatus”).  You’ll say “um.”
Maintaining Your Turn While Presenting
Consider how turn negotiation changes when you are presenting in front of an audience. Your instincts tell you that a pause will cause you to lose your turn, but in reality, you’re on stage. It’s your show. We in the audience have granted you an extended turn. You would feel uncomfortable in a one-on-one conversation talking for 20 minutes without exchanging turns, but it is normal, expected, and exactly appropriate during a presentation.
How do you override the unconscious desire to say “um” to maintain your turn? You make eye contact with your audience members. Deliberate, focused eye contact. Avoid scattershot scans over their heads or a fixated stare at the clock on the back wall. Instead, look at the members of your audience. Deliver a clause or a whole sentence to one person, then connect with another person for the next. Two beneficial side-effects are better reception from your audience and improved pacing in your delivery. Deliberate pauses become built in as you deliver points to different individuals.
When you make eye contact, your unconscious mind gets direct evidence that it is still your turn. You can see that there are no bids from the audience. You can feel the audience’s attention. That need to fill pauses with noise melts away.


Given an array of people with name and age properties, we want to get a table with these people but with the FirstName property instead of name and without the age property.
const SmartMapper = require('smart-mapper');


 The mechanism outlined below for using AngularJS with RequireJS is just one, which I've used for this tutorial. It's a blend of my desire not to post-process library scripts into AMDs and some examples I've seen online where controllers are still fully defined in modules. In this variation, though, controllers (and the idea could be extended to services and factories alike) are injected into a main application as configuration and the main application wires up using Angular directives, meaning that the controllers aren't directly dependent on angular. First, the configuration:
(function() { requirejs.config({ baseUrl: 'js', paths: { 'angular': '../node_modules/angular/angular', 'angular-route': '../node_modules/angular-route/angular-route', 'jquery': '../node_modules/jquery/dist/jquery', 'prettify': '../bower_components/google-code-prettify/bin/prettify.min' }, map: { '*': { 'jquery': 'jquery-private' }, 'jquery-private': { 'jquery' : 'jquery' } }, shim: { 'angular-route': { deps: [ 'angular' ] }, 'magic': { deps: [ 'prettify' ] }, 'app': { deps: [ 'angular', 'angular-route', 'toc', 'magic' ] } } }); require(['app']); })();
Note that I still stick to keeping my main.js within a self-executing function. It's good practice to stick
to this, though, technically, in your modules, you don't have to as they should be contained all within
a define
block
I use path
directives to keep references easier to read and maintain.
I also use shim
directives to set up Angular dependencies (such as ngRoute). The config
above basically states the following dependency tree:
app |- angular `- angular-route |- toc `- magic `- prettify
Where angular
, angular-route
, and prettify
are not AMD modules but the load
order is kept correct by RequireJS because of the shim dependency tree.
Next, an example controller:
(function() { define(['magic', 'jquery'], function(magic, $) { return [ '$scope', function(scope) { scope.$watch('assignments', function(value) { var scrollTopEl = $("div#footer-clone").length ? $("div#footer-clone") : $("body"); $('body').animate({ scrollTop: scrollTopEl.offset().top }, 1000); magic(); }); } ]; }); })();
This is the defaultController
used to display all of the tutorial pages. It doesn't do
much except make sure that prettification of code elements is performed whenever Angular navigation
occurrs and scrolls to the quick navigation at the top of the content area. Obviously, I'd expect
production controllers to be more interesting, logic-wise. What may be of interest though is that the
code above doesn't reference angular
anywhere. No reference to the application name, no
decision about what this controller is to be called, which frees you to alter that in one place, such
as app.js
:
define([ 'jquery', 'routing', 'controllers/default' ], function( $, config, defaultController ) { 'use strict'; var app = angular.module('angularApp', ['ngRoute']); app.config(config); app.controller('defaultController', defaultController); angular.bootstrap($('#content'), ['angularApp']); });
You might pick up that I've used the same strategies for routing configuration. Here's my routing.js
:
define(['config'], function(config) { 'use strict'; var routing = [ '$routeProvider', function(routeProvider) { function viewNameFor(tocItem) { var hashUrl = tocItem[1]; return hashUrl.replace(/^#\//, ''); } function routeUrlFor(tocItem) { var hashUrl = tocItem[1]; return hashUrl.replace(/^#/, ''); } function viewFor(tocItem) { return ['views/', viewNameFor(tocItem), '.html'].join(''); } function controllerFor(tocItem) { return tocItem[2] || "defaultController"; } config.TOC.forEach(function(item) { routeProvider.when(routeUrlFor(item), { templateUrl: viewFor(item), controller: controllerFor(item) }); }); routeProvider.otherwise({ redirectTo: routeUrlFor(config.TOC[0][1]) }); }]; return routing; });and my
config.js
, just so you can see how it ties into the routing above:
define([], function() { return { 'TOC': [ ['Intro', '#/home'], ['Why use RequireJS?', '#/why'], ['A simple example', '#/simple'], ['Named modules', '#/namedModules'], ['Configuration', '#/config'], ['jQuery done properly', '#/jqueryAMD'], ['Recommended project structure', '#/structure'], ['Angular & RequireJS: one approach', '#/angular'], ['RequireJS plugins', '#/plugins'] ] }; });
One advantage of the strategy outlined above is that it could potentially be easier to
mock out and test, without having to use Angular's mocking system all of the time. For
example, instead of trying to test if Angular's routing was properly set up with
inject
, you could inject a completely mocked out routeProvider
from just requiring route.js
instead of requiring all of the app configuration.
Of course, the converse argument can be made that whilst you're now not testing that the
underlying libraries work (which is a good thing), you're also not testing that you're
interacting with them correctly -- you could have erroneous tests satisfied by erroneous
code. So pick whatever works for you (:. My personal preference is a blend of the above --
still use AngularJS testing but with the sort-of "disconnected" angular module configuration
outlined above. It may be a matter of personal preference, but it just seems neater to me.
This isn't necessarily better, it's just another way which potentially might be a little simpler, depending on your approach.


Chapter 3 Vector Data
3.1 Types of vector data in QGIS
- Points
- Lines
- Polygons
layer > add layer > add vector layer
- File
- Folder
- Database
- Protocol
Files that can be loaded as vector files:
- Geopackage
- ESRI Shapefile
- Geography Markup Language
- CSV
- …
WFS data example: https://mrdata.usgs.gov/services/wfs/ofr20051294?request=GetCapabilities&service=WFS&version=1.1.0


 It's a game played on New Girl, but their version gets boring after a while.
So we made some adjustments to keep it just as confusing, and even more fun.
The president picks 2 cards, and everyone does what the cards say. Then the game tells you how many spots to move.
Repeat until unable to walk. Simple.
Oh, and the floor is lava.
You don't need all of these to play, but some things make the game more fun:
PBR. The true beer of True AmericanIf you pull a card and you don't have the materials for it, don't worry about it!
Just skip it and keep playing


Welcome to EconGraphs
Intuitive interactive visualizations of key concepts in economics
Note: you appear to be on a mobile device. These are optimized for displaying as slides in a lecture hall; they "sort of" work on mobile, but also please check them out on a laptop when you get a chance. ;)
Basic Concepts
Comparative Advantage
Production Possibilities
Elasticity
Calculating Elasticity
Demand Elasticity
Supply Elasticity
Microeconomics
Market Equilibrium
Supply, Demand, and Taxes
Consumer Theory
Consumer Choice
Risk Aversion
Producer Theory
Production and Cost
Market Structures
Perfect Competition
Monopoly
Macroeconomics
The AS-AD Model
Behind the AS-AD Model
Economic Growth
The Neoclassical Growth Model
Finance
The CAPM Model
Market Model
Diversification
Mean-Variance Model
{% endblock %}


--- title: Identifying Files layout: post tags: [trick, tutorial] uuid: be4f6a39-11d0-3963-8ade-1ff1bbf4d904 ---
At work I currently spend about a third of my time doing data reduction, and it's become one of my favorite tasks. (I've done it on my own too). Data come in from various organizations and sponsors in all sorts of strange formats. We have a bunch of fancy analysis tools to work on the data, but they aren't any good if they can't read the format. So I'm tasked with writing tools to convert incoming data into a more useful format.
If the source file is a text-based file it's usually just a matter of writing a parser — possibly including a grammar — after carefully studying the textual structure. Binary files are trickier. Fortunately, there are a few tools that come in handy for identifying the format of a strange binary file.
The first is the standard utility found on any unix-like
system: file
. I have no idea if it has an official website because it's a term
that's impossible to search for. It tries to identify a file based on
the magic numbers and other tests, none based on the actual
file name. I've never been to lucky to have file
recognize
a strange format at work. But silence speaks volumes: it means the
data are not packed into something common, like a simple zip archive.
Next, I take a look at the file with ent, a pseudo-random number sequence test program. This will reveal how compressed (or even encrypted) data are. If ent says the data are very dense, say 7 bits per byte or more, the format is employing a good compression algorithm. The next step would be tackling that so I can start over on the uncompressed contents. If it's something like 4 bits per byte there's no compression. If it's in between then it might be employing a weak, custom compression algorithm. I've always seen the latter two.
Next I dive in with a hex editor. I use a combination of
Emacs' hexl-mode
and the standard BSD
tool hexdump (for
something more static). One of the first things I like to identify is
byte order, and in a hex dump it's often obvious.
In general, better designed formats use big endian, also known as network order. That's the standard ordering used in communication, regardless of the native byte ordering of the network clients. The amateur, home-brew formats are generally less thoughtful and dump out whatever the native format is, usually little endian because that's what x86 is. Worse, they'll also generate data on architectures that are big endian, so you can get it both ways without any warning. In that case your conversion tool has to be sensitive to byte order and find some way to identify which ordering a file is using. A time-stamp field is very useful here, because a 64-bit time-stamp read with the wrong byte order will give a very unreasonable date.
For example, here's something I see often.
eb 03 00 00 35 00 00 00 66 1e 00 00
That's most likely 3 4-byte values, in little endian byte order. The zeros make the integers stand out.
eb 03 00 00 35 00 00 00 66 1e 00 00
We can tell it's little endian because the non-zero digits are on the left. This information will be useful in identifying more bytes in the file.
Next I'd look for headers, common strings of bytes, so that I can identify larger structures in the data. I've never had to reverse engineer a format ... yet. I'm not sure if I could. Once I got this far I've always been able to research the format further and find either source code or documentation, revealing everything to me.
If the file contains strings I'll dump them out
with
strings
. I haven't found this too useful at work, but
it's been useful at home.
And there's something still useful beyond these. Something I made
myself at home for a completely different purpose, but I've exploited
its side effects: my PNG
Archiver. The original purpose of the tool is to store a file in
an image, as images are easier to share with others. The side effect
is that by viewing the image I get to see the structure of the
file. For example, here's my laptop's /bin/ls
, very
roughly labeled.
It's easy to spot the different segments of the ELF format. Higher entropy sections are more brightly colored. Strings, being composed of ASCII-like text, have their MSB's unset, which is why they're darker. Any non-compressed format will have an interesting profile like this. Here's a Word doc, an infamously horrible format,
And here's some Emacs bytecode. You can tell the code vectors apart from the constants section below it.
If you find yourself having to inspect strange files, keep these tools around to make the job easier.


In the Media
The Invention of Ethical AIDirect Sources
NIST Study Evaluates Effects of Race, Age, Sex on Facial Recognition SoftwareTake Action
Algorithmic Justice LeagueIn the Arts
Wearable Face ProjectorThis is an ongoing collection effort by Calen Chung for her Senior Communication Design Thesis.
Last updated April 2021


About
Himanshu Mahawar is a landscape, street and Monochrome photographer. And he is currently enrolled in Electronics and Communication Engineerng in NIT Warangal.
Himanshu Mahawar Photography
About
Himanshu Mahawar is a landscape, street and Monochrome photographer. And he is currently enrolled in Electronics and Communication Engineerng in NIT Warangal.

Himanshu Mahawar Photography is the registered trademark of Tasveer.
© 2020 Tasveer. All Rights Reserved
Please provide feedback about site experience. Above contact form will not work on mobile devices.


TABLE OF INTERACTIONS WITH
LOW MOLECULAR WEIGHT HEPARINS AND RELATED DRUGS (CURATIVE DOSES AND/OR OLDER PATIENT)
From the French ANSM drug interactions document of September 2016, p. 106
LOW MOLECULAR WEIGHT HEPARINS AND RELATED DRUGS (CURATIVE DOSES AND/OR OLDER PATIENT) CLASS CODE: B01AB-001 |
ACETYLSALICYLIC ACID RxNorm: 1191 ATC: A01AD05 B01AC06 N02BA01 |
Increase of the risk of hemorrhage (inhibition of the platelet function and irritation of the gastroduodenal mucosa by the acetylsalicylic acid) |
Not recommended with -anti-inflammatory doses of acetylsalicylic acid (>=1gr per dose and/or >=3 gr per day) -analgesic or antipyretic doses (>=500 mg per dose and/or <3gr per day) Use another anti-inflammatory or another analgesic or antipyretic Take into account with -anti-coagulating doses (of 50 mg to 375 mg per day) |
LOW MOLECULAR WEIGHT HEPARINS AND RELATED DRUGS (CURATIVE DOSES AND/OR OLDER PATIENT) CLASS CODE: B01AB-001 |
ORAL ANTICOAGULANTS CLASS CODE: B01A-001 |
Increase of the risk of hemorrhage |
Precaution for use If the administration of these together cannot be avoided, strengthen clinical monitoring and, if the situation requires, biological monitoring. |
LOW MOLECULAR WEIGHT HEPARINS AND RELATED DRUGS (CURATIVE DOSES AND/OR OLDER PATIENT) CLASS CODE: B01AB-001 |
NON STEROIDAL ANTI-INFLAMMATORY DRUGS CLASS CODE: M01A-002 |
Increase of the risk of hemorrhage (irritation of the gastroduodenal mucosa by the NSAIs) |
Not recommended If administering the substances together cannot be avoided, strict clinical monitoring. |
LOW MOLECULAR WEIGHT HEPARINS AND RELATED DRUGS (CURATIVE DOSES AND/OR OLDER PATIENT) CLASS CODE: B01AB-001 |
DEXTRAN 40 RxNorm: 42635 ATC: B05AA05 B03AC06 |
Increase of the risk of hemorrhage (inhibition of the platelet function by the dextran 40) |
Not recommended |
LOW MOLECULAR WEIGHT HEPARINS AND RELATED DRUGS (CURATIVE DOSES AND/OR OLDER PATIENT) CLASS CODE: B01AB-001 |
THROMBOLYTICS CLASS CODE: B01AD |
Increase of the risk of hemorrhage |
Take into account |


Reality Analysis HTML 5
Settings
Social Health
Social Map
Permission
Choose a pet:
Off
Gold
Silver
Bronze
permission dialogue that explains each permission option.
Sensors:
Activity
Focus
Social
Set Sharing:
Sister
Family
Everyone


|
Neodroid
0.2.0
Machine Learning Environment Prototyping Tool
|
Public Member Functions | |
| float | Evaluate () |
| Compute signal More... | |
| void | EnvironmentReset () |
| Reset for function for resetting stateful evaluation functions More... | |
Properties | |
| float | SolvedThreshold [get, set] |
| Specify an signal value for which the objective is considered solved More... | |
| int | EpisodeLength [get, set] |
| The length of an episode More... | |
| Space1 | SignalSpace [get, set] |
| The range for which the signal might fall More... | |
| Properties inherited from droid.Runtime.Interfaces.IRegisterable | |
| string | Identifier [get] |
Definition at line 7 of file IObjective.cs.
| void droid.Runtime.Interfaces.IObjective.EnvironmentReset | ( | ) |
Reset for function for resetting stateful evaluation functions
Implemented in droid.Runtime.Prototyping.Evaluation.ObjectiveFunction.
| float droid.Runtime.Interfaces.IObjective.Evaluate | ( | ) |
Compute signal
Implemented in droid.Runtime.Prototyping.Evaluation.ObjectiveFunction.
|
getset |
The length of an episode
Definition at line 27 of file IObjective.cs.
|
getset |
The range for which the signal might fall
Definition at line 32 of file IObjective.cs.
|
getset |
Specify an signal value for which the objective is considered solved
Definition at line 11 of file IObjective.cs.


Logo
Login
Forgot Password?
Sign Up
Facebook
Google
© 2017 All right reserved. Designed by
ThemeVault.


Solve challenging puzzles in this boardgame classic!
The addicting retro brick stacking game fresh out of Russia.
Old school shoot'em up.


#include "splines.h"
Functions | |
| arma::mat | penaltyMat (const unsigned int &nparams, const unsigned int &differences) |
| Calculating penalty matrix. More... | |
| unsigned int | findSpan (const double &x, const arma::vec &knots) |
| Binary search to find index of given point within knots. More... | |
| arma::vec | createKnots (const arma::vec &values, const unsigned int &n_knots, const unsigned int °ree) |
| Create knots for a specific number, degree and values. More... | |
| arma::mat | createSplineBasis (const arma::vec &values, const unsigned int °ree, const arma::vec &knots) |
| Transformation from a vector of input points to matrix of basis. More... | |
| arma::sp_mat | createSparseSplineBasis (const arma::vec &values, const unsigned int °ree, const arma::vec &knots) |
| Transformation from a vector of input points to sparse matrix of basis. More... | |
| arma::vec createKnots | ( | const arma::vec & | values, |
| const unsigned int & | n_knots, | ||
| const unsigned int & | degree | ||
| ) |
Create knots for a specific number, degree and values.
This functions takes a vector of points and creates knots used for the splines depending on the number of knots and degree. This function just handles equidistant knots.
| values | arma::vec Points to create the basis matrix. |
| n_knots | unsigned int Number of innter knots. |
| degree | unsigned int polynomial degree of splines. |
arma::vec
of knots. | arma::sp_mat createSparseSplineBasis | ( | const arma::vec & | values, |
| const unsigned int & | degree, | ||
| const arma::vec & | knots | ||
| ) |
Transformation from a vector of input points to sparse matrix of basis.
This functions takes a vector of points and create a sparse matrix of basis functions. Each row contains the basis of the corresponding value in values
.
Instead of calculating each row through a helper function we directly calculate deboors algorithm here. This is due to the procedure how sparse matrices should be allocated and constructed.
| param | values arma::vec Points to create the basis matrix. |
| param | n_knots unsigned int Number of innter knots. |
| param | degree unsigned int polynomial degree of splines. |
arma::sp_mat
sparse matrix of base functions. | arma::mat createSplineBasis | ( | const arma::vec & | values, |
| const unsigned int & | degree, | ||
| const arma::vec & | knots | ||
| ) |
Transformation from a vector of input points to matrix of basis.
This functions takes a vector of points and create a matrix of basis functions. Each row contains the basis of the corresponding value in values
.
| values | arma::vec Points to create the basis matrix. |
| n_knots | unsigned int Number of innter knots. |
| degree | unsigned int polynomial degree of splines. |
sp_mat
sparse matrix of base functions. | unsigned int findSpan | ( | const double & | x, |
| const arma::vec & | knots | ||
| ) |
Binary search to find index of given point within knots.
This small functions search for the position of x
within the knots
and returns the smalles index for which x >= knots[i].
Note that this function returns the C++
index which starts with 0
and ends with n-1
.
| x | double Point to search for position in knots. |
| knots | arma::vec Vector of knots. It's the users responsibility to pass a SORTED vector. |
unsigned int
of position of x
in knots
. | arma::mat penaltyMat | ( | const unsigned int & | nparams, |
| const unsigned int & | differences | ||
| ) |
Calculating penalty matrix.
This function calculates the penalty matrix for a given number of parameters (nparams
) and a given number of differences (differences
).
| nparams | unsigned int Number of params which should be penalized. This also pretend the number of rows and columns. |
| differences | unsigned int Number of penalized differences. |
arma::sp_mat
Sparse penalty matrix used for p splines.


We are in a perpetual mission of trying to understand the world around us. Getting to unveil the way things work is key for predicting their behaviour, exploiting their strengths or event replicate their virtues. But for effectively grasping the way they function, we need Data about them. Fortunalely, Data is just out there. The bad news is, information is sometimes difficult to capture, complex to interpret, and too vast to be fully processed.
Semantic and Big Data technologies can help us to enroll machines for this cause, so we can stop fearing the immensity of the Data but rather fall in love with it. The Web has revealed its strengths as a mine of real world objects and shared taxonomies that computers can leverage on to complement, refine and contextualize this Data. Those new information techniques open a window to a more sophisticated, human-like reasoning over the Data to ultimately try to make sense out of it.
News
My CV is also available in PDF format:


Detailed Profile
| Name | {{selectedTeammember.name}} |
| {{selectedTeammember.email}} | |
| Department | {{selectedTeammember.department}} |
| Designation | {{selectedTeammember.designation}} |
| Department | {{selectedTeammember.department}} |
| Gender | {{selectedTeammember.gender}} |
| Blood group | {{selectedTeammember.booldgroup}} |
| Contact Number | {{selectedTeammember.contact}} |
| Address | {{selectedTeammember.address}} |


Changes API secret.
WARNING! Changing API secret could prevent others from accessing API functions!
Example:
var maintenanceManager = new MaintenanceManager(_configuration);
var model = new ChangeSecret() { Secret = "MyNewS3cr3t" };
var result = await maintenanceManager.ChangeSecretAsync(model);


While normally clicking either of the two links below is blocked by Chrome, a right click and "Open in a new Tab" or "Open in a new window" works for the first one. Note, that <Ctrl+Click> or <Ctrl+Shift+Click> does not work although you might think it invokes the exact same functionality.


Our Leading Organizational Support
What is Business Income Insurance?
Business Income coverage helps replace income lost when a business
is unable to operate due to a covered property loss such as damage
from a fire, theft or wind.
Best of all, business income coverage is already included in a
Business Owner's Policy from The Hartford. And you can easily
increase coverage to meet specific risks to your business income
by choosing from a variety of optional business income coverages
that can be added as endorsements to your existing Business
Owner's Policy.
Who needs Business Income Coverage?
If your business relies on a physical location, equipment or other
property to generate income, consider increasing your business
income coverage with endorsements to your existing Business
Owner's Policy. For example, businesses like these may benefit
from adding business income coverage endorsements to their
policies
Support
Small businesses drive our economy. We understand that small
business owners like you work hard every day, taking risks to
better serve your customers, employ more people and strive to be
successful. As the #1 Total Small Business Insurer1 and 7th
largest commercial insurance carrier, we can help you build and
protect your business by providing customized insurance solutions
to support you and your budget. You can rely on our financial
strength and stability to be there when you need us most.


Dashboard
Table Details
About Us
Stats
test
Account
Revenue
$ 1,345
Clicks
23
Cummulative Click Performance
Select Features to Graph:


TaffyDB is easy to extend. Simply use the extend method to add a new method to all TaffyDB collections on your page.
Here is an example that creates an "avg" method that takes a column and returns the avg value.
// Create a new empty database TAFFY.extend("avg",function (c) { // This runs the query or returns the results if it has already run this.context({ results: this.getDBI().query(this.context()) }); // setup the sum var total = 0; // loop over every record in the results and sum up the column. TAFFY.each(this.context().results,function (r) { total = total + r[c]; }) // divide the total by the number of records and return return total/this.context().results.length; });
What can you build?


{% set page_title = "Unread Reports" %} {% set active_management_report_nav=True %} {% extends theme("management/management_layout.html") %} {% block management_content %} {% from theme('macros.html') import render_pagination, navlink with context %}
| # | Poster | Topic | Reporter | Reason | Reported | Mark all as Read |
|---|---|---|---|---|---|---|
| {{ report.id }} | {{ report.post.user.username }} | {{ report.post.topic.title }} | {{ report.reporter.username }} | {{ report.reason }} | {{ report.reported|time_since }} | Mark as Read |
| No unread reports. |


Setting Up CVS and SSH
Scott McPeak George Necula |
This document is intended to get you started with the tools that are
necessary for checking out stuff out of the manju CVS repository.  (In the future
we might be able to avoid these but for now you are better off with them.).
Here is what I (George) do to install Cygwin. You need a good network
connection for this.
-
Create a directory C:\Download\cygwin
- Go to http://sources.redhat.com/cygwin and click Install
cygwin icon. Download setup.exe to the directory you just created.
- Run setup.exe and select “Download to local directory”. Select all
the packages. It is especially important to select all packages under
“Devel” category. If you want to use OCaml for other projects as well, I
also suggest that you select the XFree86-bin, XFree86-lib and XFree86-prog as
well. This will take a while ( 30 minutes)
- Run setup.exe again and now select to “Install from local
directory”. It is best to deselect the tetex package since I found
it to interfere with other installations of Latex.
- I choose C:\Programs\cygwin
as the home for cygwin, I use DOS as the default text file and I
choose “Install for All”.
- Add C:\Programs\cygwin\bin to your
PATH. You must put it in the “System Variables” PATH (In Control Panel/System/Advanced/Environment
Variables” and put it first so that it comes before the default
c:/WinNT/system32. You can verify that you got it right if you get
/usr/bin/find when you run which find.
If you get a compilation error in file “cltkImg.c” while you compile Ocaml
v 3.06, then you should patch the Ocaml sources as explained at
http://groups.google.com/groups?selm=fa.i2v96ov.1p7cmbc%40ifi.uio.no
(It is easy).
1.2 Customize ssh
Set the environment variable HOME to point to your home directory. I use
C:\Necula.
For some strange reason ssh does not see this HOME variable and
insists on looking at /home/necula instead. So I create a link as follows:
bash
cd /
mkdir home
ln -s /cygdrive/c/Necula /home/necula
2 Configure CVS
2.1 .cvsrc
Create a ~/.cvsrc file with two lines in it:
cvs -q
update -d
2.2 .ssh/config
Create a ~/.ssh/config file with this line in it:
ForwardX11 yes
If the DISPLAY environment variable is set when you invoke ssh (e.g.
to localhost:0.0 then ssh will do automatic X11 forwarding for you.
This is not useful for the use of ssh with cvs but when you want to do
remote login.
2.3 Using CVS with ssh
Note: these instructions appear to work even on Windows with the ssh and
cvs that ships with cygwin (provided that you have installed
cygwin and ssh as discussed in Section 1.2).
Set the environment variable CVS_RSH to ssh.
Now you can use cvs with ssh but you will have to type the remote password
everytime you run cvs.
If you want to be able to use ssh without typing a password everytime
here is what you can do. These instructions are for the case when you use one
of the newer versions of SSH that support the protocol 2.
-
If you have a DSA private key that is already authorized on
the server, copy it to ~/.ssh/id_dsa and you
should be done.
- Otherwise
-
Run ssh-keygen -t dsa to create a private key.
Choose a passphrase and remember it.
If you do not have a passphrase then anybody who gets
access to your machine will also be able to log in to the server. This
step should create the files id_dsa.pub and id_dsa in your
~/.ssh directory.
- Copy the public key to the server (say manju.cs.berkeley.edu).
Make sure you append the key to authorized_keys2, not to authorized_keys.
cd ~
scp .ssh/id_dsa.pub manju:~/.ssh/newpublicid
ssh manju
cd .ssh
cat newpublicid >> authorized_keys2
rm newpublicid
If you want you can even start an agent to do the authentication for
you. The steps are different for Linux or Windows:
-
On Linux or on Windows if you work from within bash you can run
eval `ssh-agent`
ssh-add
The first step starts the agent and the second on loads your identity
in the agent. In this latter step you will be asked to enter your
passphrase.
- At the Windows command prompt (cmd.exe) you cannot just run
those commands. Instead you have to download
this batch file
(do not execute it),
put it somewhere in your path and then run it instead of the above
sequence of commands.
3 Using CVS
You should read the rest only if you have not used CVS before.
CVS is used to synchronize changes to the project across multiple
developers. See the CVS website for detailed information
http://www.cvshome.org/
There are a few common commands you'll need. Each of these is to be run
in the base 'cil' directory (the one with 'regrtest'):
-
cvs [-n] update -d [filename]
This retrieves any changes recently committed by others. This is
usually necessary before you can commit your own changes. It is a
good idea to run the fast regression test ('regrtest') before and
after doing "cvs update" so you can know whether it was you or the
update which broke something.
The optional -n flag tells CVS to not actually change any of your
files. This is useful for querying the status of the repository.
The -d argument tells cvs to create on your machine any new directories
that somebody might have checked in. By default cvs does not create new
directories. This flag is so useful that many people find it useful to
create a ~/.cvsrc file with one line containing "update -d" in it.
This way you don't have to specify the flag all the time.
If you specify a filename (after cd'ing to the directory containing it),
only that file will be updated, otherwise everything in the current
directory and below is updated. Run this in the top-level project
directory to update the entire project. A useful idiom for undoing all of
your changes is "cd dir; rm file; cvs update file".
- cvs commit [filename]
This pushes your changes into the repository, so that the next time
someone does "cvs update" they will get your changes. Please try to
only commit when the regression test script passes.
If you specify a filename, only that file will be committed, otherwise
everything in the current directory and below is checked in. Run this in
the top-level project directory to check all of your changes in.
- cvs add filename
This adds a new file to the repository. It isn't visible in the
repository until you do a commit.
4 Useful Links
This document was translated from LATEX by
HEVEA.