Thu 01 September 2016
It's been an interesting first year of freelancing at The Museum of The Jewish People. I wrote a lot of code, released quite a few versions and met some very good people.
Together we've opened some of the code of our databases site, published an API and started using creative commons licenses. We're now probably the most advanced Museum in Israel when it comes to digital assets and we keep pushing that envelope.
So when I met Daphne in a Django Girls meetup and heard about HackExtend I offered to help and make it happen at the Museum.
AND IT'S HAPPENING!
In a fortnight, at the 15-16/9/2016, I'll be hacking in the first ever HackExtend right here, at Beit-Hatfutsot - The Museum of The Jewish People - and the hit is on. The Museum's have put a lot of time into this and I have to prove It's worth it, so we can have many more Hackathon's at our excellent facilities - two auditorium with 100 & 200 seats, 10 class rooms and the gardens of Tel Aviv University.
My original plan was to prepare a lot of beginner issues and help people install the environment, pick an issue, fix it and submit a pull request. It's all very nice but after the pre-hackathon meetup last Friday, I understood these tasks don't fit those that are a part of a team as teams need a project. So we've banged our heads together and came with four small projects that are we'd love to have and are fun to develop.
Here they are for your consideration, ordered from the dullest to the coolest:
We have registered users and we have roles, but no way to manage them. When I need to make someone an editor I have to launch the python shell on the server and run a couple of commands. While it's been fun playing with the shell, we can really use and Admin interface to manage users and roles.
This project needs a bit of UX design, frontend (preferably angular 2) and some backend (flask-user).
My Story revamp
We have a section on the site where registered users can collect items , group them in branches and share them with the world. It works - here's my story - but it needs some serious face lifting.
We need to name branches automatically based on the Place & Family the user searched for. Good branch names will allow us to improve our 'Related' links which are now terrible (based on elasticsearch's more-like-this feature) as we can find related items in users' branches i.e. For 'Paris' the related items are those that appear in more then one branch named Paris.
At the display front, we need to let the user control the order of the cards - i.e. put my grandmother's card first - and possibly over their size. It'll also be nice to let users customize as much of the display as possible - many of the users will be kids, researching their family roots, and they love customizing.
And we need to make it easier to put items directly into the branch I'm currently researching.
This project needs UX design and angular 1.4 coding on our frontend. Netta, our resident designer, will help, explaining UI guidelines and sharing photoshop files.
Family Tree Creator
So far we've only developed a read interface to the family trees and users are demanding a way to create and edit trees. A Creation interface is simpler so we want to focus on that as the first step, allowing registered users to create their own tree.
The challenge here is to use the interface you develop to create a complex tree, like the one from Genesis.
Visitors Visualization for the Physical World
At the entrance to the Museum we have a wall with 9 screens forming a 16:9 rectangle with a diagonal of 126 inches. It currently shows clips from Jewish Weddings and we want to replace it with a live world map of visitor to the site and the content viewed. The winning visualization will run on that wall and will put a small plaque with the names of the team members.
This will require some creative UX/UI design, simple backend and a small webapp, preferably using angular 2.
See you at HackExtend!
Fri 03 June 2016
Freeing a Yack
A couple of weeks ago, I walked into the CEO's office for a chat.
We've talked about what we should do next, now that we've completed opening the legacy DB with an API. Dan called it getting our Yack on the truck and it freaked me.
Imagine, after a lot of pushing and shoving, finally you got the wild yack on the track and you're driving a truck with a poor Yack at the back cage and with no idea where you're going.
Not only that, you feel the Yack is visited by more people and it becomes the center piece in many conversations and presentation. It behaves so well, It's tempting to forget it's is still a wild beast, with tons of bugs and very few tests. I'm sure the beast can - and probably will - kick me in the head.
Not only that, the Yack has a Bus Factor of just one, yours truly, so I hit the breaks and start working on the locks to free the beast. I wrote a README, chose a license and pushed the repo to github (we were using bitbucket before).
Usually, the license is critical as it establishes the relationships between the contributors and the copyright holder. If it was my choise, I'd pick the 3-clause BSD license of Django, as it's very short - 27 lines- and free, but this time around it didn't feel right.
I ended up choosing the dreaded Aferro GPLv3, a lengthy legal doc, just 5 lines short of the number of the beast. I once met its author, St IGNUcius of the Church of Emacs, and asked him if there was no way to make it shorter. It made him angry. HOORAY! (Imagine myself, a humble worshiper of sed's visual mode, poking a finger in the eye of that pompous emacs user)
Anyways, I picked his license, as at the end of the day, The Museum is an Israeli Non profit founded in 1978 and there is no chance it will fall into the hands of some greedy lawyers that will decide to take the code private or sue contributors. IMHO, when you're sure the copyright holder will never be a kniving corporation, the license is not that important.
So I toggled public.
Next came a pull request from Alon that helped me with that damn grunt (I know, gulp is better, if you can help, feel free to fork).
Next, Alon shared with me his post. In it I found a bug: the default API server is localhost:5000 which no one except Inna, my co-developer, and Myself have, as we didn't release the server code yet.
I changed the default to our test server in devapi.dbs.bh.org.il and as Alon requested, started working with Niko (QA) and Nurit (the boss) on getting the issues over from Jira Hell.
As of now we have 61 open issues and 31 we already closed. We also customized the labels a bit and have a couple of Milestones we use to prioritize issues.
I'm not yet sure what the open source community is getting from all of this and frankly, I don't really care. It's been great for the team and for now, that's all that matters.
Thu 08 October 2015
It's not easy living next to the edge. True, I am not on the edge itself, lucky for me The Edge is an hour drive away. The Edge is the name of a mosque in Jerusalem from which a terror wave broke out about a week ago.
Today it reached us. At 3 PM, a terrorist stabbed 4 Israelies in central Tel Aviv just a couple of miles from my home. It is scary especially as our leaders can hardly find their ass hole with both hands.
It reminds me of the dark days of "The Split Screen" in 2002 when TV news had to use a split screen to track the sucide bombings and of 1994 when the street next to my home was closed for hours becuase the Rabbis had to make sure there's no piece of human flesh left on any of the trees.
This time it's diffrent (ain't it always?). The terrorists have only knives and it's clear there is no driving organization behind this. It's people who wake up one morning and decide to get a knife and hit the streets of Israeli cities and kill as many jews as possible.
Like it normally does, the terror wave started in the heart of Jerusalem at The Edge Mosque at Temple Mount. The same tiny place (150,000 m2) humans have been fighting over for 3 millenias and a torn in every empires' back since the days of the babylonians.
The Temple Mount forms the northern portion of a very narrow spur of hill that slopes sharply downward from north to south. Rising above the Kidron Valley to the east and Tyropoeon Valley to the west, its peak reaches a height of 740 m (2,428 ft) above sea level. In around 19 BCE, Herod the Great extended the Mount's natural plateau by enclosing the area with four massive retaining walls and filling the voids. This artificial expansion resulted in a large flat expanse which today forms the eastern section of the Old City of Jerusalem. The trapezium shaped platform measures 488 m along the west, 470 m along the east, 315 m along the north and 280 m along the south, giving a total area of approximately 150,000 m2 (37 acres). (wikipedia)
There has to be topological reason this place to be so precious and I believe the map above has some pretty convincing clues. First, an easy slope west & down to the sea makes it the eastern most city connected to the mediterranean ports and cities. Second, the lowest place on earth is just to the East with a drop 3,800 ft. from the city forming a steep barrier between Jerusalem and the near East.
The Profit gave The Edge it's fitting name - coming from the east it sure looks like the edge, separating east from west.
The terror we're wittensing is a result of a clash between east and west. It has a new social structure and a new communication network in the from of the Interent and we must use the power of the network to lower the flames.
, the shape of social netwroks on the Internet that spread hatered and motivate young people to become terrorists. The Internet helps the is powerful weapon and in the hands
south I'll soon have to join guard duty at my girl's kindergarten.
Wed 18 March 2015
By now, you’ve probably heard about the ugly elections we had in Israel. It's the third time in six years that I’ve been called to vote, and every time I’ve contributed long hours to develop open source tools helping voters make intelligent decisions.
Our site, Open Knesset, and it’s API got some extensive use this time around by many election games and application. These include our very own Bchirometer app (Election Meter) which helps voters see which political parties voted according to the agendas they deem as important, and the Submarine, a game developed in cooperation with The Marker magazine, for choosing which politicians should head Knesset committees. Other apps based on our platforms include: AzLemi ("So, who should I vote for?") Calcalist economic pre election tool, a visualization of Knesset voting patterns, and the fun Bottom Line app."
We’ve put a lot of effort into scraping the official site and, ordering and serving it’s data. For example, a bill has no ID in the official site and we need to collect information from the "Knesset Table", plenum votes and committee meetings and try and match their names to make it possible to track bills as the go through the legislation process.
In the last Knesset there were just 55 days when proposals were received at the Knesset Table. These days are spread between 3/13/2013 and 7/30/2014 and in them we scraped no less than 2794 private MKs bills for an average of more than 50 proposals a day.
Out of this rain of proposals, only 58 got approved. 145 bills just managed to pass a pre-approval and 89 failed. Only 10 passed the first vote and just 6 are waiting for committee’s last corrections.
Unfortunately, this was all in vein. The elections were decided by emotions rather than logic with the leading parties using negative campaigns, spreading fear and loathing. It cost us quite a bit - around a quarter of a billion shekels was the bill last time.
According to a special report by the State Comptroller, the 2013 elections, costed the Israeli public ₪241,801,302 ($60MM) out of which ₪195,079,702 came from taxpayers money and the rest from donations. But this was not enough. Most of the parties ended the election with a debt bringing the total parties debt to ₪62,863,928. Halikud is the leader with a debt of ₪21,147,961 and then Sash with ₪12,271,028 and The Movement with the silver at ₪7,034,727.
The sad thing is that with all this money, we got a society more fragmented and divided than ever before. The arab citizens are feeling their basic rights have been challenged and prominent speaker of the left have been attacked.
Yehonatan Gefen, a popular author, poet, songwriter, journalist, and playwright was attacked at his home a couple of days after the election . Achinoam Nini, a singer that sang in the Vatican was attacked at the airport just a couple of days ago.
To me, these are clear signs, that our political system is broken and that instead of using open data to measure it we should start fresh. It’s time to restart the Knesset. Instead of tracking the votes of the MKs, and other data from the Knesset we should develop a new system that makes it easy for activists to bring their issues to the public attention and for representative to join public initiatives and bring them to the Knesset and lead public discourse.
Thu 26 June 2014
There are only two hard things in Computer Science: cache invalidation and naming things.
- Phil Karlton
I’ve heard this statement for the first time about five years ago and I believe that not only it is true, but it has a grain of an even a bigger truth.
Naming things is hard but hardly new. Confucius followers are working on “Alignment of Names” to align the names they use with things’ proper meanings.
Cache Invalidation is a bit more technical: To speed server response time, websites use cache. The cache is a small, fast memory that temporarily stores results of complex, timely processes. The hard part with cache is that you have to invalidate it when new data changes the processes result. If you fail, the data loses touch with reality and you’re serving stale data. To stay sharp, the server needs to detect stale data and invalidate it and it’s not easy.
Our mind uses a cache and it’s very hard to invalidate it.
When I meet a friend do I really see him? Will I notice he has changed? Will I notice a new blister? A new religion? probably not.
We all carry stale caches in our minds. The stale part of the cache is made of miconceptions and cleaning it up is hard work. The internet can't help fs the mobile fire-hose of information is quite a distraction and I need to turn it down so my mind will have the cycles to work on trashing misconceptions.
Tue 18 March 2014
I guess things aren’t that simple and easy at github at the moment. I’m watching it all from over 7,000 miles away and I believe I can feel the founders’ and their families pains.
While we all want rapid growth, we tend to forget that growing at a ridiculous speed is impossible to manage. Some are lucky, and become the billion-users-behemoth while most have a tougher ride. It is like riding a crazy five years roller coaster enabling you to develop property worth over $100MM.
Personally, it’s very stressful to be a founder at such an endeavor. It changes your live. It makes your family and friends look at you differently, re-labeling you and taking you out of context. You find yourself in a new place and it’s very stressful. As Newman said: “the mail never stops coming”.
I guess it’s even more stressful for the spouses. Being at the passenger seat of this wild ride they help with navigation. Sponses role is never formal gut it’s a good thing they are involved. IMO, it’s a good thing for a founder to be able to talk to their spouses and listen to their advice.
I was sorry to read the latest posts coming from github and I want to thank all github founders and their families for a great service to me and to the open source community.
Social Coding FTW!
Mon 17 March 2014
Start with needs*
*user needs not government needs
The design process must start with identifying and thinking about real user needs. We should design around those — not around the way the ‘official process’ is at the moment. We must…
The british gov reminds us again why they ruled the biggest empire
Wed 14 April 2010
I'm just back from a great Open Knesset meetup. There were seven of us, a pool table and lots of free goldstar beer (thanks to amir from goldstar) in the "Rosa Parks". It was great fun.
We came to play with planning. Our project, Open-Knesset, needs focus and the game delivered. We started with the wiki definition, the ideas of AgileZen and a pool table.
As the game progressed the table filled with cards. Well, the left side did, the right was left empty, opening room for empty thoughts.We decided to split: keep what's critical above the stick and what's important below it.
We left the table when we had our prime objective: Make our user go wow! and how to do it - serving a page that renders a glance at a Knesset Member. We cleared the table and focused on the information displayed on the member's page. At that time, someone wanted to play pool, so we moved to a side table, opened one laptop with balsamiq and wireframed the page.
I had no idea it would end there, a pleasant surprise.
- the ppl of the "Rosa Parks" for the place the service and the food
- Amir from Goldstar for the free beer
- The Great Maker
- the ppl of the "Rosa Parks" for the place the service and the food
Sun 21 September 2008
I use a lot of Web 2.0 sites like flickr, youtube, twitter, friendfeed and linkedin on a daily basis and I think they are elegant. I think the term I use to group them is crap. Web 2.0 tells me nothing about what they have in common and confuses me when it comes to their history as it suggests it's all about a sock dog 2.0.
One of the things all those sites have in common is user contributions. We all do it, but why do we spend countless hours twitting, uploading, writing and editing? What is the motivation and what is the role-model we chase? I discovered quite a few role-models - David Willis for blogers, Lonely Girl for video, Linus for kernel coders, Randall Munro for comics and Guido van Rossum for python programmer to name a few.
To me they are all artists, or at least gifted artisans whose art will be grokked by future generations. Arts origins date way back, long before the sock dog:
Cave Paintings are paintings on cave walls and ceilings, and the term is used especially for those dating to prehistoric times. The earliest known European cave paintings date to 32,000 years ago. The purpose of the cave paintings is not known. The evidence suggests that they were not merely decorations of living areas, since the caves in which they have been found do not have signs of ongoing habitation. Also, they are often in areas of caves that are not easily accessed. Some theories hold that they may have been a way of transmitting information, while other theories ascribe them a religious or ceremonial purpose.I don't think the caveman purpose was other than:
...connecting with peers, achieving a certain level of fame, notoriety, or prestige, and the desire to express oneself.The piece of charcoal grew to be a twitt, a post, a bookmark, a photo, a video. The cave's wall matured into Web 2.0 sites or as I think we should call them WallX.
(from Wikipedia's User Generated Content)