Skip to content

Instantly share code, notes, and snippets.

Esteban A. Maringolo eMaringolo

Block or report user

Report or block eMaringolo

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@eMaringolo
eMaringolo / ZnSimpleWebServer.st
Created May 28, 2012
The simplest hello world server using Zinc HTTP Components <http://zn.stfx.eu/zn/index.html>
View ZnSimpleWebServer.st
(ZnServer startDefaultOn: 1701)
onRequestRespond: [ :request |
ZnResponse ok: (ZnEntity text: 'Hello World!') ]
View gist:3228968
[ :s | Transcript show: s; show: s printString ] value: '[ :s | Transcript show: s; show: s printString ] value: '
View Getting started
renderChartOn: html
| graphId graph |
graphId := html nextId.
html div class: 'chart'; id: graphId.
graph := Rickshaw graph element: graphId.
graph width: 300.
graph height: 200.
graph addSerieNamed: 'Demo' color: 'steelblue' elements: { 0 @ 40. 1 @ 49. 2 @ 38. 3 @ 30. 4 @ 32 }.
html document addLoadScript: graph
View marina-tide.sh
mkdir marina
cd marina
wget "https://ci.inria.fr/pharo-contribution/job/marina/PHARO=30,VERSION=development,VM=vm/lastSuccessfulBuild/artifact/Marina.zip"
wget -O- get.pharo.org/vm | bash
git clone https://github.com/tide-framework/marina.git
cd marina
git submodule init
git submodule update
bower install
cd tide
@eMaringolo
eMaringolo / wrongSlotScope.st
Created Apr 27, 2014
All the layout of some classes is wrong, due to some ancient bug. The bug fix has been integrated but all the classes that have been modified in-between may have this problem. To fix that you have to force the rebuild of these classes (by adding then removing a dummy inst var for ex).
View wrongSlotScope.st
ivName := 'anIVNameImPrettySureNobodyUses'.
all := Smalltalk allClasses flatCollect: [ :e | { e . e class } ].
candidates := all reject: [ :e | e superclass isNil or: [e layout slotScope isKindOf: LayoutEmptyScope ] ].
toRebuild := candidates reject: [ :e | e superclass layout slotScope == e layout slotScope parentScope ].
toRebuild do: [ :e | e addInstVarNamed: ivName ].
toRebuild do: [ :e |
(e isClassSide
@eMaringolo
eMaringolo / generator.st
Created May 24, 2014
8 byte pretty much unique ID generator
View generator.st
"http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram"
| epoch generator ids runLength shardId seqId|
epoch := '01-01-2014' asDateAndTime asUnixTime. "1388545200"
generator := [:seed1 :seed2 |
| id |
id := (DateAndTime now asUnixTime - epoch) bitShift: 64-41.
id := id bitOr: (seed1 bitShift: (64-41-13)).
id := id bitOr: seed2 ].
@eMaringolo
eMaringolo / MandrillClient.st
Created May 30, 2014
Simple example on how to send emails from Pharo using MandrillApp client
View MandrillClient.st
"Get client at http://smalltalkhub.com/#!/~NorbertHartl/Mandrill"
"Set the api key only once."
MandrillClient apiKey: 'yourApiKeyGoesHere'.
(MandrillMessage new
addRecipient: (MandrillRecipient new email: 'alice@there.com');
fromName: 'Bob';
fromEmail: 'bob@yourdomain.com';
subject: 'Sending mails from Pharo';
View JSON Bench
"Compares the parse speed of three different JSON parsers."
{'file1.json'. 'file2.json'. 'file3.json' } do: [ :filename |
jsonString := fileName asFileReference contents.
Transcript cr; show: jsonString size printString, 'bytes JSON:'; cr.
Transcript show: 'NeoJSON: '; show: [ NeoJSONReader fromString: jsonString] bench; cr.
Transcript show: 'JSON: '; show: [Json readFrom: jsonString readStream ] bench; cr.
Transcript show: 'WAJsonParser: '; show: [WAJsonParser parse: jsonString] bench; cr.
]
@eMaringolo
eMaringolo / load-script
Created Apr 28, 2015
IntelliJ icons in Pharo
View load-script
Gofer it
smalltalkhubUser: 'estebanlm' project: 'IconsForPharo';
package: 'Polymorph-Icons-Idea';
load.
ThemeIcons current: IdeaUIThemeIcons new.
AbstractNautilusUI resetIconCaches.
"(you will need to reopen all your windows)"
"The coolness of this icons set is that they work very fine with Dark Theme too :)"
@eMaringolo
eMaringolo / bitcoin
Created Aug 2, 2017
Ubuntu's /etc/init.d/bitcoin script to run a bitcoin node as daemon/service
View bitcoin
#!/bin/sh
### BEGIN INIT INFO
# Provides: bitcoin
# Required-Start: $local_fs $network $named $time $syslog
# Required-Stop: $local_fs $network $named $time $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Bitcoin Fullnode
### END INIT INFO
You can’t perform that action at this time.