Preview版のVisual Studio for Mac の削除
下記を参考にしました。
Uninstalling Visual Studio for Mac | Microsoft Docs
How to uninstall Visual Studio for Mac Preview version?
Uninstalling Visual Studio for Mac | Microsoft Docs
自分の場合は下記で削除しました(それぞれの環境で異なると思いますので参考までです。)。
sudo rm -rf /Applications/Visual\ Studio.app sudo rm -rf /Applications/Xamarin\ Profiler.app sudo rm -rf /Developer/MonoTouch sudo rm -rf /Developer/MonoAndroid sudo rm -rf /Library/Frameworks/Mono.framework sudo rm -rf /Library/Frameworks/Xamarin.Mac.framework sudo rm -rf /Library/Frameworks/Xamarin.Interactive.framework sudo rm -rf /Library/Frameworks/Xamarin.Android.framework sudo rm -rf /Library/Frameworks/Xamarin.iOS.framework sudo rm -rf ~/Library/Caches/VisualStudio sudo rm -rf ~/Library/Caches/com.microsoft.visual-studio sudo rm -rf ~/Library/Caches/com.xamarin.fontconfig sudo rm -rf ~/Library/Logs/VisualStudio sudo rm -rf ~/Library/Preferences/VisualStudio sudo rm -rf ~/Library/Preferences/Xamarin sudo rm -rf ~/Library/Preferences/com.microsoft.visual-studio.plist sudo rm -rf ~/Library/Saved\ Application\ State/com.microsoft.visual-studio.savedState sudo rm -rf ~/Library/Application\ Support/XamarinStudio-6.0 sudo rm -rf ~/Library/Developer/Xamarin sudo rm -rf ~/Library/Developer/Xamarin sudo rm -rf ~/Library/Logs/VisualStudio/ sudo rm -rf ~/.local/share/Xamarin/ sudo rm -rf /private/var/db/receipts/com.xamarin.* sudo rm -rf /private/var/db/receipts/xamarin.* sudo rm -rf ~/.local/share/MonoForAndroid sudo rm -rf ~/.config/.mono sudo rm -rf ~/Library/Caches/XamarinInstaller/ sudo rm -rf ~/Library/Logs/XamarinInstaller/
私の場合sudo pkgutil --forget
は必要ありませんでした。
Basic認証のユーザIDとパスワードを削除する方法がわからない
Web検索をしても情報が見つからず。。。
- Safari
- バージョン 9.0.3 (10601.4.4)
- 試したこと
回避策
- How to delete specific HTTP authentication credentials from Safari (for Windows)? - Super User
http://http:foo:bar@サイトのURL
-> フィッシングサイトの可能性があります。 -> 警告を無視- ユーザID、パスワードがそれぞれ
foo
、bar
として認識される。
- ユーザID、パスワードがそれぞれ
- How to delete specific HTTP authentication credentials from Safari (for Windows)? - Super User
-
- 52.0.1
- 試したこと
ServantチュートリアルのBasic認証でIO
http://haskell-servant.readthedocs.io/en/stable/tutorial/Authentication.html
チュートリアルだとユーザIDパスワードチェックのコードがハードコードされています。一見、どこでIOできるのかわからなかったので試してみました。
ServantのルーティングでのIO
Servant
でhandler
でのIO
の取り回しのサンプルはWebに情報があるのですが、:>
で記述していくルーティングでのIO
の取り回しがわからず四苦八苦していました。
HasServer
という型クラスでルーティングを記述していきますが、このクラス自体にIO
が明示的にはない(と思う)ので、ルーティング中にデータベースとかにアクセスしたい場合どうするのかと疑問に思っていました。ソースを読んでも、Delayed
という処理を貯めといて最後に処理をする仕組みのため、なかなかコードが読めませんでした。
さらにDelayed
のコードを読むとデータコンストラクタ中にDelayedIO
があります。これが、隠蔽化されているようにも思えますが、DelayedIO
定義自体は隠蔽化はしていません。DelayedIO
という名前にIO
がついているので、これを使えばIO
ができることは推測できるのですが、具体的にどうすればよいかわかりませんでした。
DelayedIO
の定義をみると、モナドトランスフォーマーのスタックの最後(最初?)にIO
があるので、これが目標になります。結局、lift
してやればIO
ができるということでした。
newtype DelayedIO a = DelayedIO { runDelayedIO' :: ReaderT Request (ResourceT (RouteResultT IO)) a } deriving ( Functor, Applicative, Monad, MonadIO, MonadReader Request, MonadBase IO, MonadThrow, MonadResource)
DelayedIO
を手繰り寄せるには、withRequest
が使えます。
Servant.Server.Internal.RoutingApplication
このwithRequest
でIO
を使うコードを下記を参考に追加してみました。lift
自体はControl.Monad.Base
のliftBase
を使います。
元ネタ
Jacob Errington | Token authentication with Servant
IO
を追加したコード