Apr 4, 2024 10:15 Kobold letters, aka phishing links that are only visible in forwarded emails – Lutra Security <–CSS class is maliciously set to invisible i.e. none in original email but because the email client changes class names changes in forwarded emails, the content with that CSS class is visible in the forwarded email. –> QUOTE: The email your manager received and forwarded to you was something completely innocent, such as a potential customer asking a few questions. All that email was supposed to achieve was being forwarded to you. However, the moment the email appeared in your inbox, it changed. The innocent pretext disappeared and the real phishing email became visible. A phishing email you had to trust because you knew the sender and they even confirmed that they had forwarded it to you. ... This attack is possible because most email clients allow CSS to be used to style HTML emails. When an email is forwarded, the position of the original email in the DOM usually changes, allowing for CSS rules to be selectively applied only when an email has been forwarded. ... An attacker can use this to include elements in the email that appear or disappear depending on the context in which the email is viewed. Because they are usually invisible, only appear in certain circumstances, and can be used for all sorts of mischief, I’ll refer to these elements as kobold letters, after the elusive sprites of mythology.

Standard

Mar 27, 2024. 23:22 Working code 🙂 get-localized-sumo-kb-urls.rb

% cat /tmp/url.text | troubleshoot-mode-thunderbird
./get-localized-sumo-kb-urls.rb /tmp/url.text    

# OR

echo 'troubleshoot-mode-thunderbird' | ./get-localized-sumo-kb-urls.rb 2&gt;/tmp/get-localized-sumo-stderr.txt           

OUTPUT:

/en-US/kb/troubleshoot-mode-thunderbird
/bn/kb/troubleshoot-mode-thunderbird
/cs/kb/rezim-reseni-potizi-v-thunderbirdu
/da/kb/thunderbird-i-fejlsoegnings-tilstand
/de/kb/Abgesicherter-Modus_Thunderbird
/el/kb/leitoyrgia-epilyshs-problhmatwn-toy-thunderbird
/es/kb/modo-seguro-tb
/fi/kb/thunderbirdin-vikasietotila
/fr/kb/mode-de-depannage-thunderbird
/it/kb/modalita-risoluzione-problemi-thunderbird
/ja/kb/troubleshoot-mode-thunderbird
/ko/kb/thunderbird%20%EC%95%88%EC%A0%84%20%EB%AA%A8%EB%93%9C
/nl/kb/de-probleemoplossingsmodus-van-thunderbird
/pl/kb/tryb-rozwiazywania-problemow-thunderbirda
/pt-BR/kb/modo-solucao-problemas-thunderbird
/pt-PT/kb/modo-seguranca-thunderbird
/ru/kb/bezopasnyj-rezhim-thunderbird
/sl/kb/varni-nacin-tb
/zh-CN/kb/Thunderbird%20%E7%9A%84%E6%8E%92%E9%9A%9C%E6%A8%A1%E5%BC%8F
/zh-TW/kb/safe-mode-tb
Standard

Working code: get-localized-sumo-kb-urls.rb

#!/usr/bin/env ruby
require 'rubygems'
require 'amazing_print'
require 'net/http'
require 'logger'
require 'mechanize'
logger = Logger.new(STDERR)
logger.level = Logger::DEBUG
mechanize = Mechanize.new
# Prior art from 2017 :-)
# https://github.com/rtanglao/rt-li-sumo-redirects/blob/master/OTHER-LANGUAGE/get-other-language-urls.rb

ARGF.each_line do |kb_slug|
  kb_slug_url = "https://support.mozilla.org/en-US/kb/#{kb_slug.chomp}/show_translations"
  logger.debug "kb_slug_url #{kb_slug_url}"
  page = mechanize.get(kb_slug_url)
  page.css('.translated_locale').map { |link| link['href'] }.each do |localized_slug|
    fromuri = "https://support.mozilla.org#{localized_slug}"
    logger.debug "fromuri:#{fromuri}"
    from_uri = URI(fromuri)
    Net::HTTP.start(from_uri.host, from_uri.port, use_ssl: from_uri.scheme == 'https') do |http|
      request = Net::HTTP::Get.new from_uri.request_uri
      response = http.request request # Net::HTTPResponse object
      response_uri = response['location']
      puts response_uri.nil? ? localized_slug : response_uri
      sleep(1) # Keep Kitsune from throttling this script :-)
    end
  end
end
Standard

Mar 27, 2024. 09:45 working code, response[location] is nil if no redirect, otherwise it has the localized url

fromuri = 'https://support.mozilla.org/de/kb/troubleshoot-mode-thunderbird'
from_uri= URI(fromuri)
Net::HTTP.start(from_uri.host, from_uri.port,
                     :use_ssl => from_uri.scheme == 'https') do |http|
  request = Net::HTTP::Get.new from_uri.request_uri
  response = http.request request # Net::HTTPResponse object
  response_uri = response['location']
  pp response ; puts response['location'] ;
  puts response_uri
end
Standard

tl;dr The groomed trails are fantastic! The non groomed trails are closed and have bare patches! Ignore the bare patch in the IG thumbnail 🙂 pic! Go skiing at Whistler Olympic Park, you won’t regret it!

Epic 19km fun skate ski at Whistler Olympic Park yesterday February 18, 2024. 18 (my apologies for stating originally that it was 9) out of 32 trails open. They need snow! What snow they have is fabulous though and super fun on classic and skate. Not icy. Just firm packed.

Standard

Happy 40th birthday, Matt!

Wow, I don’t remember the last time we interacted, but I think it was in Northern Voice in 2008.

That’s three jobs ago and version 1.0 of the pandemic ago :-), I don’t remember anything.

But I remember your awesome Northern Voice 2008 keynote, and I remember the awesome photo walk that I’m not sure I went on, actually 🙂 LOL (gratuitous photo of me that you took with the legendary 🙂 D3)

Anyways, may there be 40 MOAR!!!

Ciao, tschüß …Roland!

p.s. Check out the podcast version of this blog post: 2024-01-05 Happy 40th Matt 🙂

Standard

QUOTING: bythom.com The Software Saga Continues

"Photo Mechanic (PM) has decided to go subscription-based, too. And here’s where a problem with subscriptions comes into play. Camerabits, the maker of PM says they need the ongoing stream of revenue to continue development. Okay, I looked at my account with them. Over the course of 14 years I’ve spent almost US$600 on Photo Mechanic (e.g. US$43/year for upgrades, seats). From a user standpoint, did I get more useful features, better performance? Not really. The UI is still the same geeky kludge it’s always been, the feature set has had minimal change. The thing I’ve apparently been paying for is small bug fixes and keeping up with the camera companies’ raw formats. Also, transitioning to Apple Silicon and keeping up with computer OS changes. These are what I call “foundation” issues

So PM’s problem is simple: a decent Ingest standalone product coupled with Lightroom (not Classic) makes for a complete basic package for someone. At least someone who can keep their files organized. Meanwhile, Lightroom Classic is the whole enchilada: it ingests, browses, processes, and outputs. The primary reasons many of the pros use PM is speed and IPTC labeling, but the speed benefit has slowly been eroding over other possibilities (e.g. FastRawViewer). "

^^^^— Speed is a feature, ensh*tification is a thing etc etc. Subscription based is the new reality i.e. it costs lots of $ to keep software working on macOS and Windows and … 🙂 I’ve never used PhotoMechanic and no longer use Lightroom desktop; I’ll continue with shooting JPEG only and editing mobile only. It’s faster and good enough for me!

Standard

Nov 5, 2023 09:32 G.M.’s Cruise Moved Fast in the Driverless Race. It Got Ugly. – The New York Times <– unregulated “inn*vation” sucks example 8888 🙂 –> QUOTE: Half of Cruise’s 400 cars were in San Francisco when the driverless operations were stopped. Those vehicles were supported by a vast operations staff, with 1.5 workers per vehicle. The workers intervened to assist the company’s vehicles every 2.5 to five miles, according to two people familiar with is operations. In other words, they frequently had to do something to remotely control a car after receiving a cellular signal that it was having problems.

Standard

@simon: Simon Willison:Embeddings: What they are and why they matter <– All that we see is but a dream within a dream of an array of 1536 dimensional vectors LOL 🙂 -> QUOTE:I currently have 472 articles on my site. I calculated the 1,536 dimensional embedding vector (array of floating point numbers) for each of those articles, and stored those vectors in my site’s SQLite database....Now, if I want to find related articles for a given article, I can calculate the cosine similarity between the embedding vector for that article and every other article in the database, then return the 10 closest matches by distance.

Standard