Fetch all images from devopreactions.tumblr.com

At some point I had to create a presentation about some technical stuff. Challenge was that, course what I had host takes 2 days (2x8h).

It’s easy to make material boring, especially that was a technical presentation.

Instead of making course in typical way I decided to put text on slide in very very required situation. In each case I tried to use a white board or just regular talk  and explanation. So I end up with Power Point presentation with 140 pages, where 90% are images and 35% are gifs.

Browsing http://devopsreactions.tumblr.com/ is a nightmare:

  • tags are not suitable
  • hard to search after title
  • archive mode tends to work as it wants

Thus instead of that I made simple python script that pulls all posts form DOR, parse for a GIF and save it in local file.

Script you can find GitHub Gits

Customize ConEmu

I’ve started to look after good console under Windows after I’ve tried console on MacOS and Linux (Ubuntu).

History

Powershell is pretty nice, but it doesn’t provide good UX.

Ideally I would use Cygwin in day by day work, but it has some drawbacks:

  • Paths are unix style and local storage starts

    What is annoying
  • It’s hard to force system to use it as a default console

From the positive site I can say that whole tool set is available there: ls, ps, scp, ssh …

ConEmu

(homepage)

This small program can:

  • Force system to use this emulator as a default console
  • Provides good UX
  • Good set of customizable settings
  • Portable
  • It’s fast
  • Good system integration : Context Menu, Task Menu

One of good “all-in-one” pack with conemu is cmder but recently there is almost no movement in GitHub Project. It was a little annoying when one of update in ConEmu changed behaviour of booting application and it created a bug in cmder: #599 Hence I decided to go away from it and use pure ConEmu.

Conemu does it’s job well. It emulates console.  But, there is a way to improve how console works.

clink

clink

(homepage)

This small program is able to improve base UX of traditional console by add new shortcuts to operate on commands. It also provides a way to extend base functionality by lua scripts. Thus we can decorate entry point in console, add command completion and so on.

Install clink in conemu is trivial. All what is required is:

  • Download ZIP file form page GitHub Releases
  • Unpack it in folder:
  • Enable it in ConEmu2015-08-30_15-14-20

After first run it will create setting file within “profile” folder of clink

profile.lua

When I’ve checked internals of cmder I found really well written script cmder.lua. This script is responsible for:

  • Decorate main prompt
  • Add Git and HG repository status
  • Load other modules

I’ve changed it a little bit Clink-Profile and now it supports:

  • Selective turn on/off submodules
  • Disable status checking for Mercurial (it’s slow)
  • Changed a little bit entry point style.

This script should be placed directly into “profile” folder of clink. Therefore clink will load this file, and it will hook it into console.

Now my console looks like:

2015-08-30_15-28-08

 

clink-components

(GitHub repository)

This will provide additional set of auto completion for: npm, git, chocolatey, cordova etc. Originally installation folder should be placed directly inside “profile” folder of clink. But if profile.lua is installed properly, it is possible to move it to:

All components will be added to clink as a charm

Useful tools

Console is not only one tool that makes work smooth

FAR

(homepage)

2015-08-30_15-34-36

 

This is the best file manager what has been made for console.  And what is equal important it has good integration with ConEmu.

 

GOW/MSYS

(GOW GitHub repo) / (MSYS homepage)

Subset of unix commands like: ls, ps etc.

Alias

(GitHub repo)

This small script allows to make persistent aliases for Windows. Unlike doskey way it could be used also outside console.

Do right things rather that do things right

I think that problem what I had on the beginning was that I tried to make something in perfect way. With perfect architecture. Sometimes it was almost over-engineered but I was proud because of that. I was so stupid. I waste so much time because of that.

Problem of this way of thinking is that I cannot be sure that some solution, or project will be the right one. Sometimes client just says no, I don’t like it. Sometimes it is OK, but after a while there is revolution in project and this particular feature will be trimmed off.

I think that it’s better to be able to create several prototypes in not right way. But this gives opportunity to choose the best one, and if I am sure that this is right way I can spend some time to improve it. Even I can delegate this to someone.

In other case I’ve got crap what has been written in perfect way.

Dictionary vs Object

Recently I was wondering about different between using Object and Dictionary. One of the biggest pros about using Dictionary is possibility to use weak reference in key. This mechanism do not create an obstacles during Garbage Collection. Important fact is that weak references is quite expensive for collecting process, there is impact on overhead.

I have crated some test to show differences between Objects and Dictionaries.

Continue reading Dictionary vs Object

FlashDevelop is on the GitHub!

Regarding to forum post: (http://www.flashdevelop.org/community/viewtopic.php?f=1&t=10961)

We finally did it: FlashDevelop is now under git.

For obvious size reasons (unless you want to download a gigabyte of git objects) only the current state of the code has been archived.

The svn repository will remind us of our long history: in 2004/2005 there was nothing like github. Even Google code only appeared in March 2005 and it quickly became FlashDevelop’s code home.

In the last few years git tool, hosting and clients have become a lot better than the svn offering (does Google still cares about Google code?) and we realize that svn makes us waste a lot of time, especially for a relatively large project with lots of contributors like FlashDevelop.

And there it is, fork FlashDevelop on github:
https://github.com/fdorg/flashdevelop

For good measure, I’d like to remind that bitbucket is another fantastic host, offering even free private repositories for small projects. The company behind bitbucket offers the great, and crossplatform, SourceTree client for free (github tools are toys in comparison).

Now we have an opportunity to improve the best open source IDE to Flash. Move to C# in quite easy.

Enjoy!

Fun Fun Fun with Array and Vectors conversion

One of the most important benefit of using vectors is performance, and ability to fixing memory.

Arrays are better in:

  • copying whole structure (Array to Array, using slice())
  • as a source to create typed Vector (using statement: Vector.<T>(sourceArray))

Vectors are better in:

  • iteration over collection by index
  • more familiar in IDE (auto-complete syntax of generic)

But what is the range of those benefits and how write program to see the difference? Continue reading Fun Fun Fun with Array and Vectors conversion

Abstract class in ActionScript

There is a shame that we have to emulate Abstractions or virtual members. In most cases we can use Interfaces to define some required structure. Of course this is useful to valid composition.

When we would like to set composition over inheritable that will goes to use some tricks.  We can image situation in normal implementation:

Continue reading Abstract class in ActionScript