Posts

Fixing blank developer tools windows Edge

I recently started developing again on Windows (after 10 years on Ubuntu) after getting a PC with Windows 10 installed on it. As a dart developer the first thing I did was to try some web apps on Edge...trying to get console..F12..nothing, just the screen split in 2 with a blank/grey windows on the right.

After digging I found a solution deep in the following issue.

Start a power shell console in administrative mode than use the following command:

Add-AppxPackage -register "C:\windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe\AppxManifest.xml" -DisableDevelopmentMode -Confirm:$false

Restart Edge, press F12, that's it!

Cannot close bracket on Intellij IDEA (and WebStorm) with a French Keyboard

It was impossible for me to enter the '}' sign on Intellij IDEA and WebStorm with my French keyboard.
The solution was to look for any keyboard shortcut associated to it:

Settings | KeyMap

then look for a given shortcut by pressing the magnifying classes (find action by shortcut) to find the culprit shortcut (in my case Ctrl + Alt + =) and simply removing this shortcut

Fixing iOS build for Flutter

This is for the current first Beta version of Flutter

Flutter build remains a nightmare as a primary linux user, especially for iOS, that I don't use enough to get used to so where all the tools installed are always obsolete when I come back

My recent fix for Cocoapods

If

brew install cocoapods pod update
gives

pod --version /usr/local/bin/pod: /usr/local/Cellar/cocoapods/1.4.0/libexec/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory /usr/local/bin/pod: line 2: /usr/local/Cellar/cocoapods/1.4.0/libexec/bin/pod: Undefined error: 0
Try

gem install -n /usr/local/bin cocoapods
Then

flutter run flutter run --preview-dart-2
should work




build_value dart setup

A quick note to remind me how to use build_value package (2.0.0-dev)

Example here using json serialization

Add json_serializable dependency
Add build_runner dependency (dev)

dependencies: json_serializable: any dev_dependencies: build_runner: "=>0.7.8"
Create 'example/model/basic.dart'. All sections are needed here (library, import, part, annotation)


library my_library.basic; import 'package:json_annotation/json_annotation.dart'; part 'basic.g.dart'; @JsonSerializable() class Basic String name; }

Build


# create alias once alias br='pub run build_runner' # build br build
to see file generated (basic.g.dart)

From then you can add option (fromJson, toJson)

@JsonSerializable(includeIfNull: false) class Basic extends Object with _$BasicSerializerMixin { String name; Basic(); factory Basic.fromJson(Map<String, dynamic> json) => _$BasicFromJson(json); }


Debugging Android Nexus 5X on Ubuntu

After plugging my Nexus 5X (and activating debugging), I did get:

$ adb devices List of devices attached 00d60721d971c30400d60721d971c304 no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
First i used lsusb to find my vendor id (here I guess google)

$ lsusb Bus 002 Device 002: ID 8087:8001 Intel Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:8009 Intel Corp. ... Bus 003 Device 011: ID 18d1:4ee7 Google Inc. ... Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
As suggested in https://developer.android.com/studio/run/device.html the solution was to

sudo gedit /etc/udev/rules.d/51-android.rules
Add the following

# Google SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
I simply did:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules$ adb kill-server $ adb devices List of devices attached 00d60721d971c304

Deploying a static website efficiently on Google Cloud Storage

I have several static websites hosted on Google Cloud Storage for which the only thing missing is the ability to have a custom domain using SSL.

In my deploying process from the local file system I was using the gsutil cp command that enables gzipping the files by extension (html,css,js). However each time every file was copied which was a pain when I was using several unmodified images.

My first experience with gsutil rsync was bad:

I could not gzip the files I neededJust touching a file was causing it to be re-deployed However I was able to find an optimized way for deployment Split my local folder into 2 folders with the same hierarchy, one containing the content to be gzip (html,css,js...), the other the other filesGzip each file in my gzip folder (in place)Call gsutil rsync in for each folder to the same gs destination Of course, it is only a one way synchronization and deleted local files are not deleted remotely For the gzip folder the command is
gsutil -m -h Content-Encoding:gzip…